text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: google/appengine/v1/version.proto
  
  #define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
  #include "google/appengine/v1/version.pb.h"
  
  #include <algorithm>
  
  #include <google/protobuf/stubs/common.h>
  #include <google/protobuf/stubs/port.h>
  #include <google/protobuf/stubs/once.h>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/wire_format_lite_inl.h>
  #include <google/protobuf/descriptor.h>
  #include <google/protobuf/generated_message_reflection.h>
  #include <google/protobuf/reflection_ops.h>
  #include <google/protobuf/wire_format.h>
  // @@protoc_insertion_point(includes)
  
  namespace google {
  namespace appengine {
  namespace v1 {
  
  namespace {
  
  const ::google::protobuf::Descriptor* Version_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    Version_reflection_ = NULL;
  struct VersionOneofInstance {
    const ::google::appengine::v1::AutomaticScaling* automatic_scaling_;
    const ::google::appengine::v1::BasicScaling* basic_scaling_;
    const ::google::appengine::v1::ManualScaling* manual_scaling_;
  }* Version_default_oneof_instance_ = NULL;
  const ::google::protobuf::Descriptor* Version_BetaSettingsEntry_descriptor_ = NULL;
  const ::google::protobuf::Descriptor* Version_EnvVariablesEntry_descriptor_ = NULL;
  const ::google::protobuf::Descriptor* AutomaticScaling_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    AutomaticScaling_reflection_ = NULL;
  const ::google::protobuf::Descriptor* BasicScaling_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    BasicScaling_reflection_ = NULL;
  const ::google::protobuf::Descriptor* ManualScaling_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    ManualScaling_reflection_ = NULL;
  const ::google::protobuf::Descriptor* CpuUtilization_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    CpuUtilization_reflection_ = NULL;
  const ::google::protobuf::Descriptor* RequestUtilization_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    RequestUtilization_reflection_ = NULL;
  const ::google::protobuf::Descriptor* DiskUtilization_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    DiskUtilization_reflection_ = NULL;
  const ::google::protobuf::Descriptor* NetworkUtilization_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    NetworkUtilization_reflection_ = NULL;
  const ::google::protobuf::Descriptor* Network_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    Network_reflection_ = NULL;
  const ::google::protobuf::Descriptor* Resources_descriptor_ = NULL;
  const ::google::protobuf::internal::GeneratedMessageReflection*
    Resources_reflection_ = NULL;
  const ::google::protobuf::EnumDescriptor* InboundServiceType_descriptor_ = NULL;
  const ::google::protobuf::EnumDescriptor* ServingStatus_descriptor_ = NULL;
  
  }  // namespace
  
  
  void protobuf_AssignDesc_google_2fappengine_2fv1_2fversion_2eproto() GOOGLE_ATTRIBUTE_COLD;
  void protobuf_AssignDesc_google_2fappengine_2fv1_2fversion_2eproto() {
    protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto();
    const ::google::protobuf::FileDescriptor* file =
      ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
        "google/appengine/v1/version.proto");
    GOOGLE_CHECK(file != NULL);
    Version_descriptor_ = file->message_type(0);
    static const int Version_offsets_[29] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, name_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, id_),
      PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Version_default_oneof_instance_, automatic_scaling_),
      PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Version_default_oneof_instance_, basic_scaling_),
      PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(Version_default_oneof_instance_, manual_scaling_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, inbound_services_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, instance_class_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, network_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, resources_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, runtime_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, threadsafe_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, vm_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, beta_settings_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, env_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, serving_status_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, created_by_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, create_time_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, disk_usage_bytes_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, handlers_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, error_handlers_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, libraries_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, api_config_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, env_variables_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, default_expiration_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, health_check_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, nobuild_files_regex_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, deployment_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, version_url_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, scaling_),
    };
    Version_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        Version_descriptor_,
        Version::internal_default_instance(),
        Version_offsets_,
        -1,
        -1,
        -1,
        Version_default_oneof_instance_,
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, _oneof_case_[0]),
        sizeof(Version),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Version, _internal_metadata_));
    Version_BetaSettingsEntry_descriptor_ = Version_descriptor_->nested_type(0);
    Version_EnvVariablesEntry_descriptor_ = Version_descriptor_->nested_type(1);
    AutomaticScaling_descriptor_ = file->message_type(1);
    static const int AutomaticScaling_offsets_[12] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, cool_down_period_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, cpu_utilization_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, max_concurrent_requests_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, max_idle_instances_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, max_total_instances_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, max_pending_latency_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, min_idle_instances_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, min_total_instances_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, min_pending_latency_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, request_utilization_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, disk_utilization_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, network_utilization_),
    };
    AutomaticScaling_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        AutomaticScaling_descriptor_,
        AutomaticScaling::internal_default_instance(),
        AutomaticScaling_offsets_,
        -1,
        -1,
        -1,
        sizeof(AutomaticScaling),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(AutomaticScaling, _internal_metadata_));
    BasicScaling_descriptor_ = file->message_type(2);
    static const int BasicScaling_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BasicScaling, idle_timeout_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BasicScaling, max_instances_),
    };
    BasicScaling_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        BasicScaling_descriptor_,
        BasicScaling::internal_default_instance(),
        BasicScaling_offsets_,
        -1,
        -1,
        -1,
        sizeof(BasicScaling),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BasicScaling, _internal_metadata_));
    ManualScaling_descriptor_ = file->message_type(3);
    static const int ManualScaling_offsets_[1] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ManualScaling, instances_),
    };
    ManualScaling_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        ManualScaling_descriptor_,
        ManualScaling::internal_default_instance(),
        ManualScaling_offsets_,
        -1,
        -1,
        -1,
        sizeof(ManualScaling),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ManualScaling, _internal_metadata_));
    CpuUtilization_descriptor_ = file->message_type(4);
    static const int CpuUtilization_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CpuUtilization, aggregation_window_length_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CpuUtilization, target_utilization_),
    };
    CpuUtilization_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        CpuUtilization_descriptor_,
        CpuUtilization::internal_default_instance(),
        CpuUtilization_offsets_,
        -1,
        -1,
        -1,
        sizeof(CpuUtilization),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CpuUtilization, _internal_metadata_));
    RequestUtilization_descriptor_ = file->message_type(5);
    static const int RequestUtilization_offsets_[2] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RequestUtilization, target_request_count_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RequestUtilization, target_concurrent_requests_),
    };
    RequestUtilization_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        RequestUtilization_descriptor_,
        RequestUtilization::internal_default_instance(),
        RequestUtilization_offsets_,
        -1,
        -1,
        -1,
        sizeof(RequestUtilization),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RequestUtilization, _internal_metadata_));
    DiskUtilization_descriptor_ = file->message_type(6);
    static const int DiskUtilization_offsets_[4] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DiskUtilization, target_write_bytes_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DiskUtilization, target_write_ops_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DiskUtilization, target_read_bytes_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DiskUtilization, target_read_ops_per_second_),
    };
    DiskUtilization_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        DiskUtilization_descriptor_,
        DiskUtilization::internal_default_instance(),
        DiskUtilization_offsets_,
        -1,
        -1,
        -1,
        sizeof(DiskUtilization),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DiskUtilization, _internal_metadata_));
    NetworkUtilization_descriptor_ = file->message_type(7);
    static const int NetworkUtilization_offsets_[4] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NetworkUtilization, target_sent_bytes_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NetworkUtilization, target_sent_packets_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NetworkUtilization, target_received_bytes_per_second_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NetworkUtilization, target_received_packets_per_second_),
    };
    NetworkUtilization_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        NetworkUtilization_descriptor_,
        NetworkUtilization::internal_default_instance(),
        NetworkUtilization_offsets_,
        -1,
        -1,
        -1,
        sizeof(NetworkUtilization),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NetworkUtilization, _internal_metadata_));
    Network_descriptor_ = file->message_type(8);
    static const int Network_offsets_[3] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Network, forwarded_ports_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Network, instance_tag_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Network, name_),
    };
    Network_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        Network_descriptor_,
        Network::internal_default_instance(),
        Network_offsets_,
        -1,
        -1,
        -1,
        sizeof(Network),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Network, _internal_metadata_));
    Resources_descriptor_ = file->message_type(9);
    static const int Resources_offsets_[3] = {
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Resources, cpu_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Resources, disk_gb_),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Resources, memory_gb_),
    };
    Resources_reflection_ =
      ::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
        Resources_descriptor_,
        Resources::internal_default_instance(),
        Resources_offsets_,
        -1,
        -1,
        -1,
        sizeof(Resources),
        GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Resources, _internal_metadata_));
    InboundServiceType_descriptor_ = file->enum_type(0);
    ServingStatus_descriptor_ = file->enum_type(1);
  }
  
  namespace {
  
  GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
  void protobuf_AssignDescriptorsOnce() {
    ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
                   &protobuf_AssignDesc_google_2fappengine_2fv1_2fversion_2eproto);
  }
  
  void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
  void protobuf_RegisterTypes(const ::std::string&) {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        Version_descriptor_, Version::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
          Version_BetaSettingsEntry_descriptor_,
          ::google::protobuf::internal::MapEntry<
              ::std::string,
              ::std::string,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              0>::CreateDefaultInstance(
                  Version_BetaSettingsEntry_descriptor_));
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
          Version_EnvVariablesEntry_descriptor_,
          ::google::protobuf::internal::MapEntry<
              ::std::string,
              ::std::string,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              0>::CreateDefaultInstance(
                  Version_EnvVariablesEntry_descriptor_));
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        AutomaticScaling_descriptor_, AutomaticScaling::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        BasicScaling_descriptor_, BasicScaling::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        ManualScaling_descriptor_, ManualScaling::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        CpuUtilization_descriptor_, CpuUtilization::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        RequestUtilization_descriptor_, RequestUtilization::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        DiskUtilization_descriptor_, DiskUtilization::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        NetworkUtilization_descriptor_, NetworkUtilization::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        Network_descriptor_, Network::internal_default_instance());
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
        Resources_descriptor_, Resources::internal_default_instance());
  }
  
  }  // namespace
  
  void protobuf_ShutdownFile_google_2fappengine_2fv1_2fversion_2eproto() {
    Version_default_instance_.Shutdown();
    delete Version_default_oneof_instance_;
    delete Version_reflection_;
    AutomaticScaling_default_instance_.Shutdown();
    delete AutomaticScaling_reflection_;
    BasicScaling_default_instance_.Shutdown();
    delete BasicScaling_reflection_;
    ManualScaling_default_instance_.Shutdown();
    delete ManualScaling_reflection_;
    CpuUtilization_default_instance_.Shutdown();
    delete CpuUtilization_reflection_;
    RequestUtilization_default_instance_.Shutdown();
    delete RequestUtilization_reflection_;
    DiskUtilization_default_instance_.Shutdown();
    delete DiskUtilization_reflection_;
    NetworkUtilization_default_instance_.Shutdown();
    delete NetworkUtilization_reflection_;
    Network_default_instance_.Shutdown();
    delete Network_reflection_;
    Resources_default_instance_.Shutdown();
    delete Resources_reflection_;
  }
  
  void protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto_impl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    ::google::api::protobuf_InitDefaults_google_2fapi_2fannotations_2eproto();
    ::google::appengine::v1::protobuf_InitDefaults_google_2fappengine_2fv1_2fapp_5fyaml_2eproto();
    ::google::appengine::v1::protobuf_InitDefaults_google_2fappengine_2fv1_2fdeploy_2eproto();
    ::google::protobuf::protobuf_InitDefaults_google_2fprotobuf_2fduration_2eproto();
    ::google::protobuf::protobuf_InitDefaults_google_2fprotobuf_2ftimestamp_2eproto();
    ::google::protobuf::internal::GetEmptyString();
    Version_default_instance_.DefaultConstruct();
    Version_default_oneof_instance_ = new VersionOneofInstance();
    AutomaticScaling_default_instance_.DefaultConstruct();
    BasicScaling_default_instance_.DefaultConstruct();
    ManualScaling_default_instance_.DefaultConstruct();
    CpuUtilization_default_instance_.DefaultConstruct();
    RequestUtilization_default_instance_.DefaultConstruct();
    DiskUtilization_default_instance_.DefaultConstruct();
    NetworkUtilization_default_instance_.DefaultConstruct();
    ::google::protobuf::internal::GetEmptyString();
    Network_default_instance_.DefaultConstruct();
    Resources_default_instance_.DefaultConstruct();
    Version_default_instance_.get_mutable()->InitAsDefaultInstance();
    AutomaticScaling_default_instance_.get_mutable()->InitAsDefaultInstance();
    BasicScaling_default_instance_.get_mutable()->InitAsDefaultInstance();
    ManualScaling_default_instance_.get_mutable()->InitAsDefaultInstance();
    CpuUtilization_default_instance_.get_mutable()->InitAsDefaultInstance();
    RequestUtilization_default_instance_.get_mutable()->InitAsDefaultInstance();
    DiskUtilization_default_instance_.get_mutable()->InitAsDefaultInstance();
    NetworkUtilization_default_instance_.get_mutable()->InitAsDefaultInstance();
    Network_default_instance_.get_mutable()->InitAsDefaultInstance();
    Resources_default_instance_.get_mutable()->InitAsDefaultInstance();
  }
  
  GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto_once_);
  void protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto() {
    ::google::protobuf::GoogleOnceInit(&protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto_once_,
                   &protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto_impl);
  }
  void protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto_impl() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      "\n!google/appengine/v1/version.proto\022\023goo"
      "gle.appengine.v1\032\034google/api/annotations"
      ".proto\032\"google/appengine/v1/app_yaml.pro"
      "to\032 google/appengine/v1/deploy.proto\032\036go"
      "ogle/protobuf/duration.proto\032\037google/pro"
      "tobuf/timestamp.proto\"\246\n\n\007Version\022\014\n\004nam"
      "e\030\001 \001(\t\022\n\n\002id\030\002 \001(\t\022B\n\021automatic_scaling"
      "\030\003 \001(\0132%.google.appengine.v1.AutomaticSc"
      "alingH\000\022:\n\rbasic_scaling\030\004 \001(\0132!.google."
      "appengine.v1.BasicScalingH\000\022<\n\016manual_sc"
      "aling\030\005 \001(\0132\".google.appengine.v1.Manual"
      "ScalingH\000\022A\n\020inbound_services\030\006 \003(\0162\'.go"
      "ogle.appengine.v1.InboundServiceType\022\026\n\016"
      "instance_class\030\007 \001(\t\022-\n\007network\030\010 \001(\0132\034."
      "google.appengine.v1.Network\0221\n\tresources"
      "\030\t \001(\0132\036.google.appengine.v1.Resources\022\017"
      "\n\007runtime\030\n \001(\t\022\022\n\nthreadsafe\030\013 \001(\010\022\n\n\002v"
      "m\030\014 \001(\010\022E\n\rbeta_settings\030\r \003(\0132..google."
      "appengine.v1.Version.BetaSettingsEntry\022\013"
      "\n\003env\030\016 \001(\t\022:\n\016serving_status\030\017 \001(\0162\".go"
      "ogle.appengine.v1.ServingStatus\022\022\n\ncreat"
      "ed_by\030\020 \001(\t\022/\n\013create_time\030\021 \001(\0132\032.googl"
      "e.protobuf.Timestamp\022\030\n\020disk_usage_bytes"
      "\030\022 \001(\003\022-\n\010handlers\030d \003(\0132\033.google.appeng"
      "ine.v1.UrlMap\0229\n\016error_handlers\030e \003(\0132!."
      "google.appengine.v1.ErrorHandler\022/\n\tlibr"
      "aries\030f \003(\0132\034.google.appengine.v1.Librar"
      "y\0229\n\napi_config\030g \001(\0132%.google.appengine"
      ".v1.ApiConfigHandler\022E\n\renv_variables\030h "
      "\003(\0132..google.appengine.v1.Version.EnvVar"
      "iablesEntry\0225\n\022default_expiration\030i \001(\0132"
      "\031.google.protobuf.Duration\0226\n\014health_che"
      "ck\030j \001(\0132 .google.appengine.v1.HealthChe"
      "ck\022\033\n\023nobuild_files_regex\030k \001(\t\0223\n\ndeplo"
      "yment\030l \001(\0132\037.google.appengine.v1.Deploy"
      "ment\022\023\n\013version_url\030m \001(\t\0323\n\021BetaSetting"
      "sEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0323"
      "\n\021EnvVariablesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005valu"
      "e\030\002 \001(\t:\0028\001B\t\n\007scaling\"\324\004\n\020AutomaticScal"
      "ing\0223\n\020cool_down_period\030\001 \001(\0132\031.google.p"
      "rotobuf.Duration\022<\n\017cpu_utilization\030\002 \001("
      "\0132#.google.appengine.v1.CpuUtilization\022\037"
      "\n\027max_concurrent_requests\030\003 \001(\005\022\032\n\022max_i"
      "dle_instances\030\004 \001(\005\022\033\n\023max_total_instanc"
      "es\030\005 \001(\005\0226\n\023max_pending_latency\030\006 \001(\0132\031."
      "google.protobuf.Duration\022\032\n\022min_idle_ins"
      "tances\030\007 \001(\005\022\033\n\023min_total_instances\030\010 \001("
      "\005\0226\n\023min_pending_latency\030\t \001(\0132\031.google."
      "protobuf.Duration\022D\n\023request_utilization"
      "\030\n \001(\0132\'.google.appengine.v1.RequestUtil"
      "ization\022>\n\020disk_utilization\030\013 \001(\0132$.goog"
      "le.appengine.v1.DiskUtilization\022D\n\023netwo"
      "rk_utilization\030\014 \001(\0132\'.google.appengine."
      "v1.NetworkUtilization\"V\n\014BasicScaling\022/\n"
      "\014idle_timeout\030\001 \001(\0132\031.google.protobuf.Du"
      "ration\022\025\n\rmax_instances\030\002 \001(\005\"\"\n\rManualS"
      "caling\022\021\n\tinstances\030\001 \001(\005\"j\n\016CpuUtilizat"
      "ion\022<\n\031aggregation_window_length\030\001 \001(\0132\031"
      ".google.protobuf.Duration\022\032\n\022target_util"
      "ization\030\002 \001(\001\"a\n\022RequestUtilization\022\'\n\037t"
      "arget_request_count_per_second\030\001 \001(\005\022\"\n\032"
      "target_concurrent_requests\030\002 \001(\005\"\247\001\n\017Dis"
      "kUtilization\022%\n\035target_write_bytes_per_s"
      "econd\030\016 \001(\005\022#\n\033target_write_ops_per_seco"
      "nd\030\017 \001(\005\022$\n\034target_read_bytes_per_second"
      "\030\020 \001(\005\022\"\n\032target_read_ops_per_second\030\021 \001"
      "(\005\"\270\001\n\022NetworkUtilization\022$\n\034target_sent"
      "_bytes_per_second\030\001 \001(\005\022&\n\036target_sent_p"
      "ackets_per_second\030\013 \001(\005\022(\n target_receiv"
      "ed_bytes_per_second\030\014 \001(\005\022*\n\"target_rece"
      "ived_packets_per_second\030\r \001(\005\"F\n\007Network"
      "\022\027\n\017forwarded_ports\030\001 \003(\t\022\024\n\014instance_ta"
      "g\030\002 \001(\t\022\014\n\004name\030\003 \001(\t\"<\n\tResources\022\013\n\003cp"
      "u\030\001 \001(\001\022\017\n\007disk_gb\030\002 \001(\001\022\021\n\tmemory_gb\030\003 "
      "\001(\001*\273\002\n\022InboundServiceType\022\037\n\033INBOUND_SE"
      "RVICE_UNSPECIFIED\020\000\022\030\n\024INBOUND_SERVICE_M"
      "AIL\020\001\022\037\n\033INBOUND_SERVICE_MAIL_BOUNCE\020\002\022\036"
      "\n\032INBOUND_SERVICE_XMPP_ERROR\020\003\022 \n\034INBOUN"
      "D_SERVICE_XMPP_MESSAGE\020\004\022\"\n\036INBOUND_SERV"
      "ICE_XMPP_SUBSCRIBE\020\005\022!\n\035INBOUND_SERVICE_"
      "XMPP_PRESENCE\020\006\022$\n INBOUND_SERVICE_CHANN"
      "EL_PRESENCE\020\007\022\032\n\026INBOUND_SERVICE_WARMUP\020"
      "\t*I\n\rServingStatus\022\036\n\032SERVING_STATUS_UNS"
      "PECIFIED\020\000\022\013\n\007SERVING\020\001\022\013\n\007STOPPED\020\002Bg\n\027"
      "com.google.appengine.v1B\014VersionProtoP\001Z"
      "<google.golang.org/genproto/googleapis/a"
      "ppengine/v1;appengineb\006proto3", 3469);
    ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
      "google/appengine/v1/version.proto", &protobuf_RegisterTypes);
    ::google::api::protobuf_AddDesc_google_2fapi_2fannotations_2eproto();
    ::google::appengine::v1::protobuf_AddDesc_google_2fappengine_2fv1_2fapp_5fyaml_2eproto();
    ::google::appengine::v1::protobuf_AddDesc_google_2fappengine_2fv1_2fdeploy_2eproto();
    ::google::protobuf::protobuf_AddDesc_google_2fprotobuf_2fduration_2eproto();
    ::google::protobuf::protobuf_AddDesc_google_2fprotobuf_2ftimestamp_2eproto();
    ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_google_2fappengine_2fv1_2fversion_2eproto);
  }
  
  GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto_once_);
  void protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto() {
    ::google::protobuf::GoogleOnceInit(&protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto_once_,
                   &protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto_impl);
  }
  // Force AddDescriptors() to be called at static initialization time.
  struct StaticDescriptorInitializer_google_2fappengine_2fv1_2fversion_2eproto {
    StaticDescriptorInitializer_google_2fappengine_2fv1_2fversion_2eproto() {
      protobuf_AddDesc_google_2fappengine_2fv1_2fversion_2eproto();
    }
  } static_descriptor_initializer_google_2fappengine_2fv1_2fversion_2eproto_;
  const ::google::protobuf::EnumDescriptor* InboundServiceType_descriptor() {
    protobuf_AssignDescriptorsOnce();
    return InboundServiceType_descriptor_;
  }
  bool InboundServiceType_IsValid(int value) {
    switch (value) {
      case 0:
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
      case 6:
      case 7:
      case 9:
        return true;
      default:
        return false;
    }
  }
  
  const ::google::protobuf::EnumDescriptor* ServingStatus_descriptor() {
    protobuf_AssignDescriptorsOnce();
    return ServingStatus_descriptor_;
  }
  bool ServingStatus_IsValid(int value) {
    switch (value) {
      case 0:
      case 1:
      case 2:
        return true;
      default:
        return false;
    }
  }
  
  
  namespace {
  
  static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD GOOGLE_ATTRIBUTE_NORETURN;
  static void MergeFromFail(int line) {
    ::google::protobuf::internal::MergeFromFail(__FILE__, line);
  }
  
  }  // namespace
  
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int Version::kNameFieldNumber;
  const int Version::kIdFieldNumber;
  const int Version::kAutomaticScalingFieldNumber;
  const int Version::kBasicScalingFieldNumber;
  const int Version::kManualScalingFieldNumber;
  const int Version::kInboundServicesFieldNumber;
  const int Version::kInstanceClassFieldNumber;
  const int Version::kNetworkFieldNumber;
  const int Version::kResourcesFieldNumber;
  const int Version::kRuntimeFieldNumber;
  const int Version::kThreadsafeFieldNumber;
  const int Version::kVmFieldNumber;
  const int Version::kBetaSettingsFieldNumber;
  const int Version::kEnvFieldNumber;
  const int Version::kServingStatusFieldNumber;
  const int Version::kCreatedByFieldNumber;
  const int Version::kCreateTimeFieldNumber;
  const int Version::kDiskUsageBytesFieldNumber;
  const int Version::kHandlersFieldNumber;
  const int Version::kErrorHandlersFieldNumber;
  const int Version::kLibrariesFieldNumber;
  const int Version::kApiConfigFieldNumber;
  const int Version::kEnvVariablesFieldNumber;
  const int Version::kDefaultExpirationFieldNumber;
  const int Version::kHealthCheckFieldNumber;
  const int Version::kNobuildFilesRegexFieldNumber;
  const int Version::kDeploymentFieldNumber;
  const int Version::kVersionUrlFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  Version::Version()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.Version)
  }
  
  void Version::InitAsDefaultInstance() {
    Version_default_oneof_instance_->automatic_scaling_ = const_cast< ::google::appengine::v1::AutomaticScaling*>(
        ::google::appengine::v1::AutomaticScaling::internal_default_instance());
    Version_default_oneof_instance_->basic_scaling_ = const_cast< ::google::appengine::v1::BasicScaling*>(
        ::google::appengine::v1::BasicScaling::internal_default_instance());
    Version_default_oneof_instance_->manual_scaling_ = const_cast< ::google::appengine::v1::ManualScaling*>(
        ::google::appengine::v1::ManualScaling::internal_default_instance());
    network_ = const_cast< ::google::appengine::v1::Network*>(
        ::google::appengine::v1::Network::internal_default_instance());
    resources_ = const_cast< ::google::appengine::v1::Resources*>(
        ::google::appengine::v1::Resources::internal_default_instance());
    create_time_ = const_cast< ::google::protobuf::Timestamp*>(
        ::google::protobuf::Timestamp::internal_default_instance());
    api_config_ = const_cast< ::google::appengine::v1::ApiConfigHandler*>(
        ::google::appengine::v1::ApiConfigHandler::internal_default_instance());
    default_expiration_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
    health_check_ = const_cast< ::google::appengine::v1::HealthCheck*>(
        ::google::appengine::v1::HealthCheck::internal_default_instance());
    deployment_ = const_cast< ::google::appengine::v1::Deployment*>(
        ::google::appengine::v1::Deployment::internal_default_instance());
  }
  
  Version::Version(const Version& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.Version)
  }
  
  void Version::SharedCtor() {
    beta_settings_.SetAssignDescriptorCallback(
        protobuf_AssignDescriptorsOnce);
    beta_settings_.SetEntryDescriptor(
        &::google::appengine::v1::Version_BetaSettingsEntry_descriptor_);
    env_variables_.SetAssignDescriptorCallback(
        protobuf_AssignDescriptorsOnce);
    env_variables_.SetEntryDescriptor(
        &::google::appengine::v1::Version_EnvVariablesEntry_descriptor_);
    name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    instance_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    runtime_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    env_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    created_by_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    nobuild_files_regex_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    version_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    network_ = NULL;
    resources_ = NULL;
    create_time_ = NULL;
    api_config_ = NULL;
    default_expiration_ = NULL;
    health_check_ = NULL;
    deployment_ = NULL;
    ::memset(&threadsafe_, 0, reinterpret_cast<char*>(&disk_usage_bytes_) -
      reinterpret_cast<char*>(&threadsafe_) + sizeof(disk_usage_bytes_));
    clear_has_scaling();
    _cached_size_ = 0;
  }
  
  Version::~Version() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.Version)
    SharedDtor();
  }
  
  void Version::SharedDtor() {
    name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    instance_class_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    runtime_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    env_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    created_by_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    nobuild_files_regex_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    version_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (has_scaling()) {
      clear_scaling();
    }
    if (this != &Version_default_instance_.get()) {
      delete network_;
      delete resources_;
      delete create_time_;
      delete api_config_;
      delete default_expiration_;
      delete health_check_;
      delete deployment_;
    }
  }
  
  void Version::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* Version::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return Version_descriptor_;
  }
  
  const Version& Version::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<Version> Version_default_instance_;
  
  Version* Version::New(::google::protobuf::Arena* arena) const {
    Version* n = new Version;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void Version::clear_scaling() {
  // @@protoc_insertion_point(one_of_clear_start:google.appengine.v1.Version)
    switch (scaling_case()) {
      case kAutomaticScaling: {
        delete scaling_.automatic_scaling_;
        break;
      }
      case kBasicScaling: {
        delete scaling_.basic_scaling_;
        break;
      }
      case kManualScaling: {
        delete scaling_.manual_scaling_;
        break;
      }
      case SCALING_NOT_SET: {
        break;
      }
    }
    _oneof_case_[0] = SCALING_NOT_SET;
  }
  
  
  void Version::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.Version)
  #if defined(__clang__)
  #define ZR_HELPER_(f) \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \
    __builtin_offsetof(Version, f) \
    _Pragma("clang diagnostic pop")
  #else
  #define ZR_HELPER_(f) reinterpret_cast<char*>(\
    &reinterpret_cast<Version*>(16)->f)
  #endif
  
  #define ZR_(first, last) do {\
    ::memset(&(first), 0,\
             ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
  } while (0)
  
    name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    instance_class_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (GetArenaNoVirtual() == NULL && network_ != NULL) delete network_;
    network_ = NULL;
    ZR_(threadsafe_, serving_status_);
    if (GetArenaNoVirtual() == NULL && resources_ != NULL) delete resources_;
    resources_ = NULL;
    runtime_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    env_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    created_by_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (GetArenaNoVirtual() == NULL && create_time_ != NULL) delete create_time_;
    create_time_ = NULL;
    disk_usage_bytes_ = GOOGLE_LONGLONG(0);
    if (GetArenaNoVirtual() == NULL && api_config_ != NULL) delete api_config_;
    api_config_ = NULL;
    if (GetArenaNoVirtual() == NULL && default_expiration_ != NULL) delete default_expiration_;
    default_expiration_ = NULL;
    if (GetArenaNoVirtual() == NULL && health_check_ != NULL) delete health_check_;
    health_check_ = NULL;
    nobuild_files_regex_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    if (GetArenaNoVirtual() == NULL && deployment_ != NULL) delete deployment_;
    deployment_ = NULL;
    version_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  
  #undef ZR_HELPER_
  #undef ZR_
  
    inbound_services_.Clear();
    beta_settings_.Clear();
    handlers_.Clear();
    error_handlers_.Clear();
    libraries_.Clear();
    env_variables_.Clear();
    clear_scaling();
  }
  
  bool Version::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.Version)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(16383);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional string name = 1;
        case 1: {
          if (tag == 10) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_name()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->name().data(), this->name().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.name"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(18)) goto parse_id;
          break;
        }
  
        // optional string id = 2;
        case 2: {
          if (tag == 18) {
           parse_id:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_id()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->id().data(), this->id().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.id"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(26)) goto parse_automatic_scaling;
          break;
        }
  
        // optional .google.appengine.v1.AutomaticScaling automatic_scaling = 3;
        case 3: {
          if (tag == 26) {
           parse_automatic_scaling:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_automatic_scaling()));
          } else {
            goto handle_unusual;
          }
          goto after_manual_scaling;
          break;
        }
  
        // optional .google.appengine.v1.BasicScaling basic_scaling = 4;
        case 4: {
          if (tag == 34) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_basic_scaling()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(42)) goto parse_manual_scaling;
          break;
        }
  
        // optional .google.appengine.v1.ManualScaling manual_scaling = 5;
        case 5: {
          if (tag == 42) {
           parse_manual_scaling:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_manual_scaling()));
          } else {
            goto handle_unusual;
          }
         after_manual_scaling:
          if (input->ExpectTag(50)) goto parse_inbound_services;
          break;
        }
  
        // repeated .google.appengine.v1.InboundServiceType inbound_services = 6;
        case 6: {
          if (tag == 50) {
           parse_inbound_services:
            ::google::protobuf::uint32 length;
            DO_(input->ReadVarint32(&length));
            ::google::protobuf::io::CodedInputStream::Limit limit = input->PushLimit(length);
            while (input->BytesUntilLimit() > 0) {
              int value;
              DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                   input, &value)));
              add_inbound_services(static_cast< ::google::appengine::v1::InboundServiceType >(value));
            }
            input->PopLimit(limit);
          } else if (tag == 48) {
            int value;
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                   input, &value)));
            add_inbound_services(static_cast< ::google::appengine::v1::InboundServiceType >(value));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(58)) goto parse_instance_class;
          break;
        }
  
        // optional string instance_class = 7;
        case 7: {
          if (tag == 58) {
           parse_instance_class:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_instance_class()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->instance_class().data(), this->instance_class().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.instance_class"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(66)) goto parse_network;
          break;
        }
  
        // optional .google.appengine.v1.Network network = 8;
        case 8: {
          if (tag == 66) {
           parse_network:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_network()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(74)) goto parse_resources;
          break;
        }
  
        // optional .google.appengine.v1.Resources resources = 9;
        case 9: {
          if (tag == 74) {
           parse_resources:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_resources()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(82)) goto parse_runtime;
          break;
        }
  
        // optional string runtime = 10;
        case 10: {
          if (tag == 82) {
           parse_runtime:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_runtime()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->runtime().data(), this->runtime().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.runtime"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(88)) goto parse_threadsafe;
          break;
        }
  
        // optional bool threadsafe = 11;
        case 11: {
          if (tag == 88) {
           parse_threadsafe:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                   input, &threadsafe_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(96)) goto parse_vm;
          break;
        }
  
        // optional bool vm = 12;
        case 12: {
          if (tag == 96) {
           parse_vm:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                   input, &vm_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(106)) goto parse_beta_settings;
          break;
        }
  
        // map<string, string> beta_settings = 13;
        case 13: {
          if (tag == 106) {
           parse_beta_settings:
            DO_(input->IncrementRecursionDepth());
           parse_loop_beta_settings:
            Version_BetaSettingsEntry::Parser< ::google::protobuf::internal::MapField<
                ::std::string, ::std::string,
                ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                0 >,
              ::google::protobuf::Map< ::std::string, ::std::string > > parser(&beta_settings_);
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, &parser));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              parser.key().data(), parser.key().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.BetaSettingsEntry.key"));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              parser.value().data(), parser.value().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.BetaSettingsEntry.value"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(106)) goto parse_loop_beta_settings;
          input->UnsafeDecrementRecursionDepth();
          if (input->ExpectTag(114)) goto parse_env;
          break;
        }
  
        // optional string env = 14;
        case 14: {
          if (tag == 114) {
           parse_env:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_env()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->env().data(), this->env().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.env"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(120)) goto parse_serving_status;
          break;
        }
  
        // optional .google.appengine.v1.ServingStatus serving_status = 15;
        case 15: {
          if (tag == 120) {
           parse_serving_status:
            int value;
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                   input, &value)));
            set_serving_status(static_cast< ::google::appengine::v1::ServingStatus >(value));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(130)) goto parse_created_by;
          break;
        }
  
        // optional string created_by = 16;
        case 16: {
          if (tag == 130) {
           parse_created_by:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_created_by()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->created_by().data(), this->created_by().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.created_by"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(138)) goto parse_create_time;
          break;
        }
  
        // optional .google.protobuf.Timestamp create_time = 17;
        case 17: {
          if (tag == 138) {
           parse_create_time:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_create_time()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(144)) goto parse_disk_usage_bytes;
          break;
        }
  
        // optional int64 disk_usage_bytes = 18;
        case 18: {
          if (tag == 144) {
           parse_disk_usage_bytes:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                   input, &disk_usage_bytes_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(802)) goto parse_handlers;
          break;
        }
  
        // repeated .google.appengine.v1.UrlMap handlers = 100;
        case 100: {
          if (tag == 802) {
           parse_handlers:
            DO_(input->IncrementRecursionDepth());
           parse_loop_handlers:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
                  input, add_handlers()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(802)) goto parse_loop_handlers;
          if (input->ExpectTag(810)) goto parse_loop_error_handlers;
          input->UnsafeDecrementRecursionDepth();
          break;
        }
  
        // repeated .google.appengine.v1.ErrorHandler error_handlers = 101;
        case 101: {
          if (tag == 810) {
            DO_(input->IncrementRecursionDepth());
           parse_loop_error_handlers:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
                  input, add_error_handlers()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(810)) goto parse_loop_error_handlers;
          if (input->ExpectTag(818)) goto parse_loop_libraries;
          input->UnsafeDecrementRecursionDepth();
          break;
        }
  
        // repeated .google.appengine.v1.Library libraries = 102;
        case 102: {
          if (tag == 818) {
            DO_(input->IncrementRecursionDepth());
           parse_loop_libraries:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
                  input, add_libraries()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(818)) goto parse_loop_libraries;
          input->UnsafeDecrementRecursionDepth();
          if (input->ExpectTag(826)) goto parse_api_config;
          break;
        }
  
        // optional .google.appengine.v1.ApiConfigHandler api_config = 103;
        case 103: {
          if (tag == 826) {
           parse_api_config:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_api_config()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(834)) goto parse_env_variables;
          break;
        }
  
        // map<string, string> env_variables = 104;
        case 104: {
          if (tag == 834) {
           parse_env_variables:
            DO_(input->IncrementRecursionDepth());
           parse_loop_env_variables:
            Version_EnvVariablesEntry::Parser< ::google::protobuf::internal::MapField<
                ::std::string, ::std::string,
                ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                0 >,
              ::google::protobuf::Map< ::std::string, ::std::string > > parser(&env_variables_);
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                input, &parser));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              parser.key().data(), parser.key().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.EnvVariablesEntry.key"));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              parser.value().data(), parser.value().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.EnvVariablesEntry.value"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(834)) goto parse_loop_env_variables;
          input->UnsafeDecrementRecursionDepth();
          if (input->ExpectTag(842)) goto parse_default_expiration;
          break;
        }
  
        // optional .google.protobuf.Duration default_expiration = 105;
        case 105: {
          if (tag == 842) {
           parse_default_expiration:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_default_expiration()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(850)) goto parse_health_check;
          break;
        }
  
        // optional .google.appengine.v1.HealthCheck health_check = 106;
        case 106: {
          if (tag == 850) {
           parse_health_check:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_health_check()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(858)) goto parse_nobuild_files_regex;
          break;
        }
  
        // optional string nobuild_files_regex = 107;
        case 107: {
          if (tag == 858) {
           parse_nobuild_files_regex:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_nobuild_files_regex()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->nobuild_files_regex().data(), this->nobuild_files_regex().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.nobuild_files_regex"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(866)) goto parse_deployment;
          break;
        }
  
        // optional .google.appengine.v1.Deployment deployment = 108;
        case 108: {
          if (tag == 866) {
           parse_deployment:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_deployment()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(874)) goto parse_version_url;
          break;
        }
  
        // optional string version_url = 109;
        case 109: {
          if (tag == 874) {
           parse_version_url:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_version_url()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->version_url().data(), this->version_url().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Version.version_url"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.Version)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.Version)
    return false;
  #undef DO_
  }
  
  void Version::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.Version)
    // optional string name = 1;
    if (this->name().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->name().data(), this->name().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.name");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->name(), output);
    }
  
    // optional string id = 2;
    if (this->id().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->id().data(), this->id().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.id");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->id(), output);
    }
  
    // optional .google.appengine.v1.AutomaticScaling automatic_scaling = 3;
    if (has_automatic_scaling()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        3, *scaling_.automatic_scaling_, output);
    }
  
    // optional .google.appengine.v1.BasicScaling basic_scaling = 4;
    if (has_basic_scaling()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        4, *scaling_.basic_scaling_, output);
    }
  
    // optional .google.appengine.v1.ManualScaling manual_scaling = 5;
    if (has_manual_scaling()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        5, *scaling_.manual_scaling_, output);
    }
  
    // repeated .google.appengine.v1.InboundServiceType inbound_services = 6;
    if (this->inbound_services_size() > 0) {
      ::google::protobuf::internal::WireFormatLite::WriteTag(
        6,
        ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
        output);
      output->WriteVarint32(_inbound_services_cached_byte_size_);
    }
    for (int i = 0; i < this->inbound_services_size(); i++) {
      ::google::protobuf::internal::WireFormatLite::WriteEnumNoTag(
        this->inbound_services(i), output);
    }
  
    // optional string instance_class = 7;
    if (this->instance_class().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->instance_class().data(), this->instance_class().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.instance_class");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        7, this->instance_class(), output);
    }
  
    // optional .google.appengine.v1.Network network = 8;
    if (this->has_network()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        8, *this->network_, output);
    }
  
    // optional .google.appengine.v1.Resources resources = 9;
    if (this->has_resources()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        9, *this->resources_, output);
    }
  
    // optional string runtime = 10;
    if (this->runtime().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->runtime().data(), this->runtime().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.runtime");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        10, this->runtime(), output);
    }
  
    // optional bool threadsafe = 11;
    if (this->threadsafe() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteBool(11, this->threadsafe(), output);
    }
  
    // optional bool vm = 12;
    if (this->vm() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteBool(12, this->vm(), output);
    }
  
    // map<string, string> beta_settings = 13;
    if (!this->beta_settings().empty()) {
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
          ConstPtr;
      typedef ConstPtr SortItem;
      typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
      struct Utf8Check {
        static void Check(ConstPtr p) {
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->first.data(), p->first.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.BetaSettingsEntry.key");
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->second.data(), p->second.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.BetaSettingsEntry.value");
        }
      };
  
      if (output->IsSerializationDeterminstic() &&
          this->beta_settings().size() > 1) {
        ::google::protobuf::scoped_array<SortItem> items(
            new SortItem[this->beta_settings().size()]);
        typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
        size_type n = 0;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->beta_settings().begin();
            it != this->beta_settings().end(); ++it, ++n) {
          items[n] = SortItem(&*it);
        }
        ::std::sort(&items[0], &items[n], Less());
        ::google::protobuf::scoped_ptr<Version_BetaSettingsEntry> entry;
        for (size_type i = 0; i < n; i++) {
          entry.reset(beta_settings_.NewEntryWrapper(
              items[i]->first, items[i]->second));
          ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
              13, *entry, output);
          Utf8Check::Check(items[i]);
        }
      } else {
        ::google::protobuf::scoped_ptr<Version_BetaSettingsEntry> entry;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->beta_settings().begin();
            it != this->beta_settings().end(); ++it) {
          entry.reset(beta_settings_.NewEntryWrapper(
              it->first, it->second));
          ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
              13, *entry, output);
          Utf8Check::Check(&*it);
        }
      }
    }
  
    // optional string env = 14;
    if (this->env().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->env().data(), this->env().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.env");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        14, this->env(), output);
    }
  
    // optional .google.appengine.v1.ServingStatus serving_status = 15;
    if (this->serving_status() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteEnum(
        15, this->serving_status(), output);
    }
  
    // optional string created_by = 16;
    if (this->created_by().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->created_by().data(), this->created_by().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.created_by");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        16, this->created_by(), output);
    }
  
    // optional .google.protobuf.Timestamp create_time = 17;
    if (this->has_create_time()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        17, *this->create_time_, output);
    }
  
    // optional int64 disk_usage_bytes = 18;
    if (this->disk_usage_bytes() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt64(18, this->disk_usage_bytes(), output);
    }
  
    // repeated .google.appengine.v1.UrlMap handlers = 100;
    for (unsigned int i = 0, n = this->handlers_size(); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        100, this->handlers(i), output);
    }
  
    // repeated .google.appengine.v1.ErrorHandler error_handlers = 101;
    for (unsigned int i = 0, n = this->error_handlers_size(); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        101, this->error_handlers(i), output);
    }
  
    // repeated .google.appengine.v1.Library libraries = 102;
    for (unsigned int i = 0, n = this->libraries_size(); i < n; i++) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        102, this->libraries(i), output);
    }
  
    // optional .google.appengine.v1.ApiConfigHandler api_config = 103;
    if (this->has_api_config()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        103, *this->api_config_, output);
    }
  
    // map<string, string> env_variables = 104;
    if (!this->env_variables().empty()) {
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
          ConstPtr;
      typedef ConstPtr SortItem;
      typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
      struct Utf8Check {
        static void Check(ConstPtr p) {
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->first.data(), p->first.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.EnvVariablesEntry.key");
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->second.data(), p->second.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.EnvVariablesEntry.value");
        }
      };
  
      if (output->IsSerializationDeterminstic() &&
          this->env_variables().size() > 1) {
        ::google::protobuf::scoped_array<SortItem> items(
            new SortItem[this->env_variables().size()]);
        typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
        size_type n = 0;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->env_variables().begin();
            it != this->env_variables().end(); ++it, ++n) {
          items[n] = SortItem(&*it);
        }
        ::std::sort(&items[0], &items[n], Less());
        ::google::protobuf::scoped_ptr<Version_EnvVariablesEntry> entry;
        for (size_type i = 0; i < n; i++) {
          entry.reset(env_variables_.NewEntryWrapper(
              items[i]->first, items[i]->second));
          ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
              104, *entry, output);
          Utf8Check::Check(items[i]);
        }
      } else {
        ::google::protobuf::scoped_ptr<Version_EnvVariablesEntry> entry;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->env_variables().begin();
            it != this->env_variables().end(); ++it) {
          entry.reset(env_variables_.NewEntryWrapper(
              it->first, it->second));
          ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
              104, *entry, output);
          Utf8Check::Check(&*it);
        }
      }
    }
  
    // optional .google.protobuf.Duration default_expiration = 105;
    if (this->has_default_expiration()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        105, *this->default_expiration_, output);
    }
  
    // optional .google.appengine.v1.HealthCheck health_check = 106;
    if (this->has_health_check()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        106, *this->health_check_, output);
    }
  
    // optional string nobuild_files_regex = 107;
    if (this->nobuild_files_regex().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->nobuild_files_regex().data(), this->nobuild_files_regex().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.nobuild_files_regex");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        107, this->nobuild_files_regex(), output);
    }
  
    // optional .google.appengine.v1.Deployment deployment = 108;
    if (this->has_deployment()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        108, *this->deployment_, output);
    }
  
    // optional string version_url = 109;
    if (this->version_url().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->version_url().data(), this->version_url().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.version_url");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        109, this->version_url(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.Version)
  }
  
  ::google::protobuf::uint8* Version::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.Version)
    // optional string name = 1;
    if (this->name().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->name().data(), this->name().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.name");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          1, this->name(), target);
    }
  
    // optional string id = 2;
    if (this->id().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->id().data(), this->id().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.id");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->id(), target);
    }
  
    // optional .google.appengine.v1.AutomaticScaling automatic_scaling = 3;
    if (has_automatic_scaling()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          3, *scaling_.automatic_scaling_, false, target);
    }
  
    // optional .google.appengine.v1.BasicScaling basic_scaling = 4;
    if (has_basic_scaling()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          4, *scaling_.basic_scaling_, false, target);
    }
  
    // optional .google.appengine.v1.ManualScaling manual_scaling = 5;
    if (has_manual_scaling()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          5, *scaling_.manual_scaling_, false, target);
    }
  
    // repeated .google.appengine.v1.InboundServiceType inbound_services = 6;
    if (this->inbound_services_size() > 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
        6,
        ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
        target);
      target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(    _inbound_services_cached_byte_size_, target);
    }
    for (int i = 0; i < this->inbound_services_size(); i++) {
      target = ::google::protobuf::internal::WireFormatLite::WriteEnumNoTagToArray(
        this->inbound_services(i), target);
    }
  
    // optional string instance_class = 7;
    if (this->instance_class().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->instance_class().data(), this->instance_class().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.instance_class");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          7, this->instance_class(), target);
    }
  
    // optional .google.appengine.v1.Network network = 8;
    if (this->has_network()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          8, *this->network_, false, target);
    }
  
    // optional .google.appengine.v1.Resources resources = 9;
    if (this->has_resources()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          9, *this->resources_, false, target);
    }
  
    // optional string runtime = 10;
    if (this->runtime().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->runtime().data(), this->runtime().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.runtime");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          10, this->runtime(), target);
    }
  
    // optional bool threadsafe = 11;
    if (this->threadsafe() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(11, this->threadsafe(), target);
    }
  
    // optional bool vm = 12;
    if (this->vm() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(12, this->vm(), target);
    }
  
    // map<string, string> beta_settings = 13;
    if (!this->beta_settings().empty()) {
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
          ConstPtr;
      typedef ConstPtr SortItem;
      typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
      struct Utf8Check {
        static void Check(ConstPtr p) {
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->first.data(), p->first.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.BetaSettingsEntry.key");
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->second.data(), p->second.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.BetaSettingsEntry.value");
        }
      };
  
      if (deterministic &&
          this->beta_settings().size() > 1) {
        ::google::protobuf::scoped_array<SortItem> items(
            new SortItem[this->beta_settings().size()]);
        typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
        size_type n = 0;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->beta_settings().begin();
            it != this->beta_settings().end(); ++it, ++n) {
          items[n] = SortItem(&*it);
        }
        ::std::sort(&items[0], &items[n], Less());
        ::google::protobuf::scoped_ptr<Version_BetaSettingsEntry> entry;
        for (size_type i = 0; i < n; i++) {
          entry.reset(beta_settings_.NewEntryWrapper(
              items[i]->first, items[i]->second));
          target = ::google::protobuf::internal::WireFormatLite::
                     InternalWriteMessageNoVirtualToArray(
                         13, *entry, deterministic, target);
  ;
          Utf8Check::Check(items[i]);
        }
      } else {
        ::google::protobuf::scoped_ptr<Version_BetaSettingsEntry> entry;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->beta_settings().begin();
            it != this->beta_settings().end(); ++it) {
          entry.reset(beta_settings_.NewEntryWrapper(
              it->first, it->second));
          target = ::google::protobuf::internal::WireFormatLite::
                     InternalWriteMessageNoVirtualToArray(
                         13, *entry, deterministic, target);
  ;
          Utf8Check::Check(&*it);
        }
      }
    }
  
    // optional string env = 14;
    if (this->env().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->env().data(), this->env().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.env");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          14, this->env(), target);
    }
  
    // optional .google.appengine.v1.ServingStatus serving_status = 15;
    if (this->serving_status() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
        15, this->serving_status(), target);
    }
  
    // optional string created_by = 16;
    if (this->created_by().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->created_by().data(), this->created_by().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.created_by");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          16, this->created_by(), target);
    }
  
    // optional .google.protobuf.Timestamp create_time = 17;
    if (this->has_create_time()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          17, *this->create_time_, false, target);
    }
  
    // optional int64 disk_usage_bytes = 18;
    if (this->disk_usage_bytes() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(18, this->disk_usage_bytes(), target);
    }
  
    // repeated .google.appengine.v1.UrlMap handlers = 100;
    for (unsigned int i = 0, n = this->handlers_size(); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          100, this->handlers(i), false, target);
    }
  
    // repeated .google.appengine.v1.ErrorHandler error_handlers = 101;
    for (unsigned int i = 0, n = this->error_handlers_size(); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          101, this->error_handlers(i), false, target);
    }
  
    // repeated .google.appengine.v1.Library libraries = 102;
    for (unsigned int i = 0, n = this->libraries_size(); i < n; i++) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          102, this->libraries(i), false, target);
    }
  
    // optional .google.appengine.v1.ApiConfigHandler api_config = 103;
    if (this->has_api_config()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          103, *this->api_config_, false, target);
    }
  
    // map<string, string> env_variables = 104;
    if (!this->env_variables().empty()) {
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
          ConstPtr;
      typedef ConstPtr SortItem;
      typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
      struct Utf8Check {
        static void Check(ConstPtr p) {
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->first.data(), p->first.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.EnvVariablesEntry.key");
          ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            p->second.data(), p->second.length(),
            ::google::protobuf::internal::WireFormatLite::SERIALIZE,
            "google.appengine.v1.Version.EnvVariablesEntry.value");
        }
      };
  
      if (deterministic &&
          this->env_variables().size() > 1) {
        ::google::protobuf::scoped_array<SortItem> items(
            new SortItem[this->env_variables().size()]);
        typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
        size_type n = 0;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->env_variables().begin();
            it != this->env_variables().end(); ++it, ++n) {
          items[n] = SortItem(&*it);
        }
        ::std::sort(&items[0], &items[n], Less());
        ::google::protobuf::scoped_ptr<Version_EnvVariablesEntry> entry;
        for (size_type i = 0; i < n; i++) {
          entry.reset(env_variables_.NewEntryWrapper(
              items[i]->first, items[i]->second));
          target = ::google::protobuf::internal::WireFormatLite::
                     InternalWriteMessageNoVirtualToArray(
                         104, *entry, deterministic, target);
  ;
          Utf8Check::Check(items[i]);
        }
      } else {
        ::google::protobuf::scoped_ptr<Version_EnvVariablesEntry> entry;
        for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
            it = this->env_variables().begin();
            it != this->env_variables().end(); ++it) {
          entry.reset(env_variables_.NewEntryWrapper(
              it->first, it->second));
          target = ::google::protobuf::internal::WireFormatLite::
                     InternalWriteMessageNoVirtualToArray(
                         104, *entry, deterministic, target);
  ;
          Utf8Check::Check(&*it);
        }
      }
    }
  
    // optional .google.protobuf.Duration default_expiration = 105;
    if (this->has_default_expiration()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          105, *this->default_expiration_, false, target);
    }
  
    // optional .google.appengine.v1.HealthCheck health_check = 106;
    if (this->has_health_check()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          106, *this->health_check_, false, target);
    }
  
    // optional string nobuild_files_regex = 107;
    if (this->nobuild_files_regex().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->nobuild_files_regex().data(), this->nobuild_files_regex().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.nobuild_files_regex");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          107, this->nobuild_files_regex(), target);
    }
  
    // optional .google.appengine.v1.Deployment deployment = 108;
    if (this->has_deployment()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          108, *this->deployment_, false, target);
    }
  
    // optional string version_url = 109;
    if (this->version_url().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->version_url().data(), this->version_url().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Version.version_url");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          109, this->version_url(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.Version)
    return target;
  }
  
  size_t Version::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.Version)
    size_t total_size = 0;
  
    // optional string name = 1;
    if (this->name().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }
  
    // optional string id = 2;
    if (this->id().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->id());
    }
  
    // optional string instance_class = 7;
    if (this->instance_class().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->instance_class());
    }
  
    // optional .google.appengine.v1.Network network = 8;
    if (this->has_network()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->network_);
    }
  
    // optional .google.appengine.v1.Resources resources = 9;
    if (this->has_resources()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->resources_);
    }
  
    // optional string runtime = 10;
    if (this->runtime().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->runtime());
    }
  
    // optional bool threadsafe = 11;
    if (this->threadsafe() != 0) {
      total_size += 1 + 1;
    }
  
    // optional bool vm = 12;
    if (this->vm() != 0) {
      total_size += 1 + 1;
    }
  
    // optional string env = 14;
    if (this->env().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->env());
    }
  
    // optional .google.appengine.v1.ServingStatus serving_status = 15;
    if (this->serving_status() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::EnumSize(this->serving_status());
    }
  
    // optional string created_by = 16;
    if (this->created_by().size() > 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->created_by());
    }
  
    // optional .google.protobuf.Timestamp create_time = 17;
    if (this->has_create_time()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->create_time_);
    }
  
    // optional int64 disk_usage_bytes = 18;
    if (this->disk_usage_bytes() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->disk_usage_bytes());
    }
  
    // optional .google.appengine.v1.ApiConfigHandler api_config = 103;
    if (this->has_api_config()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->api_config_);
    }
  
    // optional .google.protobuf.Duration default_expiration = 105;
    if (this->has_default_expiration()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->default_expiration_);
    }
  
    // optional .google.appengine.v1.HealthCheck health_check = 106;
    if (this->has_health_check()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->health_check_);
    }
  
    // optional string nobuild_files_regex = 107;
    if (this->nobuild_files_regex().size() > 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->nobuild_files_regex());
    }
  
    // optional .google.appengine.v1.Deployment deployment = 108;
    if (this->has_deployment()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->deployment_);
    }
  
    // optional string version_url = 109;
    if (this->version_url().size() > 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->version_url());
    }
  
    // repeated .google.appengine.v1.InboundServiceType inbound_services = 6;
    {
      size_t data_size = 0;
      unsigned int count = this->inbound_services_size();for (unsigned int i = 0; i < count; i++) {
        data_size += ::google::protobuf::internal::WireFormatLite::EnumSize(
          this->inbound_services(i));
      }
      if (data_size > 0) {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::Int32Size(data_size);
      }
      int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
      GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
      _inbound_services_cached_byte_size_ = cached_size;
      GOOGLE_SAFE_CONCURRENT_WRITES_END();
      total_size += data_size;
    }
  
    // map<string, string> beta_settings = 13;
    total_size += 1 *
        ::google::protobuf::internal::FromIntSize(this->beta_settings_size());
    {
      ::google::protobuf::scoped_ptr<Version_BetaSettingsEntry> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->beta_settings().begin();
          it != this->beta_settings().end(); ++it) {
        entry.reset(beta_settings_.NewEntryWrapper(it->first, it->second));
        total_size += ::google::protobuf::internal::WireFormatLite::
            MessageSizeNoVirtual(*entry);
      }
    }
  
    // repeated .google.appengine.v1.UrlMap handlers = 100;
    {
      unsigned int count = this->handlers_size();
      total_size += 2UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->handlers(i));
      }
    }
  
    // repeated .google.appengine.v1.ErrorHandler error_handlers = 101;
    {
      unsigned int count = this->error_handlers_size();
      total_size += 2UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->error_handlers(i));
      }
    }
  
    // repeated .google.appengine.v1.Library libraries = 102;
    {
      unsigned int count = this->libraries_size();
      total_size += 2UL * count;
      for (unsigned int i = 0; i < count; i++) {
        total_size +=
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            this->libraries(i));
      }
    }
  
    // map<string, string> env_variables = 104;
    total_size += 2 *
        ::google::protobuf::internal::FromIntSize(this->env_variables_size());
    {
      ::google::protobuf::scoped_ptr<Version_EnvVariablesEntry> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->env_variables().begin();
          it != this->env_variables().end(); ++it) {
        entry.reset(env_variables_.NewEntryWrapper(it->first, it->second));
        total_size += ::google::protobuf::internal::WireFormatLite::
            MessageSizeNoVirtual(*entry);
      }
    }
  
    switch (scaling_case()) {
      // optional .google.appengine.v1.AutomaticScaling automatic_scaling = 3;
      case kAutomaticScaling: {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            *scaling_.automatic_scaling_);
        break;
      }
      // optional .google.appengine.v1.BasicScaling basic_scaling = 4;
      case kBasicScaling: {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            *scaling_.basic_scaling_);
        break;
      }
      // optional .google.appengine.v1.ManualScaling manual_scaling = 5;
      case kManualScaling: {
        total_size += 1 +
          ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
            *scaling_.manual_scaling_);
        break;
      }
      case SCALING_NOT_SET: {
        break;
      }
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void Version::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.Version)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const Version* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const Version>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.Version)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.Version)
      UnsafeMergeFrom(*source);
    }
  }
  
  void Version::MergeFrom(const Version& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.Version)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void Version::UnsafeMergeFrom(const Version& from) {
    GOOGLE_DCHECK(&from != this);
    inbound_services_.UnsafeMergeFrom(from.inbound_services_);
    beta_settings_.MergeFrom(from.beta_settings_);
    handlers_.MergeFrom(from.handlers_);
    error_handlers_.MergeFrom(from.error_handlers_);
    libraries_.MergeFrom(from.libraries_);
    env_variables_.MergeFrom(from.env_variables_);
    switch (from.scaling_case()) {
      case kAutomaticScaling: {
        mutable_automatic_scaling()->::google::appengine::v1::AutomaticScaling::MergeFrom(from.automatic_scaling());
        break;
      }
      case kBasicScaling: {
        mutable_basic_scaling()->::google::appengine::v1::BasicScaling::MergeFrom(from.basic_scaling());
        break;
      }
      case kManualScaling: {
        mutable_manual_scaling()->::google::appengine::v1::ManualScaling::MergeFrom(from.manual_scaling());
        break;
      }
      case SCALING_NOT_SET: {
        break;
      }
    }
    if (from.name().size() > 0) {
  
      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
    }
    if (from.id().size() > 0) {
  
      id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
    }
    if (from.instance_class().size() > 0) {
  
      instance_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_class_);
    }
    if (from.has_network()) {
      mutable_network()->::google::appengine::v1::Network::MergeFrom(from.network());
    }
    if (from.has_resources()) {
      mutable_resources()->::google::appengine::v1::Resources::MergeFrom(from.resources());
    }
    if (from.runtime().size() > 0) {
  
      runtime_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.runtime_);
    }
    if (from.threadsafe() != 0) {
      set_threadsafe(from.threadsafe());
    }
    if (from.vm() != 0) {
      set_vm(from.vm());
    }
    if (from.env().size() > 0) {
  
      env_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.env_);
    }
    if (from.serving_status() != 0) {
      set_serving_status(from.serving_status());
    }
    if (from.created_by().size() > 0) {
  
      created_by_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.created_by_);
    }
    if (from.has_create_time()) {
      mutable_create_time()->::google::protobuf::Timestamp::MergeFrom(from.create_time());
    }
    if (from.disk_usage_bytes() != 0) {
      set_disk_usage_bytes(from.disk_usage_bytes());
    }
    if (from.has_api_config()) {
      mutable_api_config()->::google::appengine::v1::ApiConfigHandler::MergeFrom(from.api_config());
    }
    if (from.has_default_expiration()) {
      mutable_default_expiration()->::google::protobuf::Duration::MergeFrom(from.default_expiration());
    }
    if (from.has_health_check()) {
      mutable_health_check()->::google::appengine::v1::HealthCheck::MergeFrom(from.health_check());
    }
    if (from.nobuild_files_regex().size() > 0) {
  
      nobuild_files_regex_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nobuild_files_regex_);
    }
    if (from.has_deployment()) {
      mutable_deployment()->::google::appengine::v1::Deployment::MergeFrom(from.deployment());
    }
    if (from.version_url().size() > 0) {
  
      version_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.version_url_);
    }
  }
  
  void Version::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.Version)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void Version::CopyFrom(const Version& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.Version)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool Version::IsInitialized() const {
  
    return true;
  }
  
  void Version::Swap(Version* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void Version::InternalSwap(Version* other) {
    name_.Swap(&other->name_);
    id_.Swap(&other->id_);
    inbound_services_.UnsafeArenaSwap(&other->inbound_services_);
    instance_class_.Swap(&other->instance_class_);
    std::swap(network_, other->network_);
    std::swap(resources_, other->resources_);
    runtime_.Swap(&other->runtime_);
    std::swap(threadsafe_, other->threadsafe_);
    std::swap(vm_, other->vm_);
    beta_settings_.Swap(&other->beta_settings_);
    env_.Swap(&other->env_);
    std::swap(serving_status_, other->serving_status_);
    created_by_.Swap(&other->created_by_);
    std::swap(create_time_, other->create_time_);
    std::swap(disk_usage_bytes_, other->disk_usage_bytes_);
    handlers_.UnsafeArenaSwap(&other->handlers_);
    error_handlers_.UnsafeArenaSwap(&other->error_handlers_);
    libraries_.UnsafeArenaSwap(&other->libraries_);
    std::swap(api_config_, other->api_config_);
    env_variables_.Swap(&other->env_variables_);
    std::swap(default_expiration_, other->default_expiration_);
    std::swap(health_check_, other->health_check_);
    nobuild_files_regex_.Swap(&other->nobuild_files_regex_);
    std::swap(deployment_, other->deployment_);
    version_url_.Swap(&other->version_url_);
    std::swap(scaling_, other->scaling_);
    std::swap(_oneof_case_[0], other->_oneof_case_[0]);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata Version::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = Version_descriptor_;
    metadata.reflection = Version_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // Version
  
  // optional string name = 1;
  void Version::clear_name() {
    name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::name() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.name)
    return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_name(const ::std::string& value) {
    
    name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.name)
  }
  void Version::set_name(const char* value) {
    
    name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.name)
  }
  void Version::set_name(const char* value, size_t size) {
    
    name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.name)
  }
  ::std::string* Version::mutable_name() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.name)
    return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_name() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.name)
    
    return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_name(::std::string* name) {
    if (name != NULL) {
      
    } else {
      
    }
    name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.name)
  }
  
  // optional string id = 2;
  void Version::clear_id() {
    id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::id() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.id)
    return id_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_id(const ::std::string& value) {
    
    id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.id)
  }
  void Version::set_id(const char* value) {
    
    id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.id)
  }
  void Version::set_id(const char* value, size_t size) {
    
    id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.id)
  }
  ::std::string* Version::mutable_id() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.id)
    return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_id() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.id)
    
    return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_id(::std::string* id) {
    if (id != NULL) {
      
    } else {
      
    }
    id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.id)
  }
  
  // optional .google.appengine.v1.AutomaticScaling automatic_scaling = 3;
  bool Version::has_automatic_scaling() const {
    return scaling_case() == kAutomaticScaling;
  }
  void Version::set_has_automatic_scaling() {
    _oneof_case_[0] = kAutomaticScaling;
  }
  void Version::clear_automatic_scaling() {
    if (has_automatic_scaling()) {
      delete scaling_.automatic_scaling_;
      clear_has_scaling();
    }
  }
   const ::google::appengine::v1::AutomaticScaling& Version::automatic_scaling() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.automatic_scaling)
    return has_automatic_scaling()
        ? *scaling_.automatic_scaling_
        : ::google::appengine::v1::AutomaticScaling::default_instance();
  }
  ::google::appengine::v1::AutomaticScaling* Version::mutable_automatic_scaling() {
    if (!has_automatic_scaling()) {
      clear_scaling();
      set_has_automatic_scaling();
      scaling_.automatic_scaling_ = new ::google::appengine::v1::AutomaticScaling;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.automatic_scaling)
    return scaling_.automatic_scaling_;
  }
  ::google::appengine::v1::AutomaticScaling* Version::release_automatic_scaling() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.automatic_scaling)
    if (has_automatic_scaling()) {
      clear_has_scaling();
      ::google::appengine::v1::AutomaticScaling* temp = scaling_.automatic_scaling_;
      scaling_.automatic_scaling_ = NULL;
      return temp;
    } else {
      return NULL;
    }
  }
  void Version::set_allocated_automatic_scaling(::google::appengine::v1::AutomaticScaling* automatic_scaling) {
    clear_scaling();
    if (automatic_scaling) {
      set_has_automatic_scaling();
      scaling_.automatic_scaling_ = automatic_scaling;
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.automatic_scaling)
  }
  
  // optional .google.appengine.v1.BasicScaling basic_scaling = 4;
  bool Version::has_basic_scaling() const {
    return scaling_case() == kBasicScaling;
  }
  void Version::set_has_basic_scaling() {
    _oneof_case_[0] = kBasicScaling;
  }
  void Version::clear_basic_scaling() {
    if (has_basic_scaling()) {
      delete scaling_.basic_scaling_;
      clear_has_scaling();
    }
  }
   const ::google::appengine::v1::BasicScaling& Version::basic_scaling() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.basic_scaling)
    return has_basic_scaling()
        ? *scaling_.basic_scaling_
        : ::google::appengine::v1::BasicScaling::default_instance();
  }
  ::google::appengine::v1::BasicScaling* Version::mutable_basic_scaling() {
    if (!has_basic_scaling()) {
      clear_scaling();
      set_has_basic_scaling();
      scaling_.basic_scaling_ = new ::google::appengine::v1::BasicScaling;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.basic_scaling)
    return scaling_.basic_scaling_;
  }
  ::google::appengine::v1::BasicScaling* Version::release_basic_scaling() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.basic_scaling)
    if (has_basic_scaling()) {
      clear_has_scaling();
      ::google::appengine::v1::BasicScaling* temp = scaling_.basic_scaling_;
      scaling_.basic_scaling_ = NULL;
      return temp;
    } else {
      return NULL;
    }
  }
  void Version::set_allocated_basic_scaling(::google::appengine::v1::BasicScaling* basic_scaling) {
    clear_scaling();
    if (basic_scaling) {
      set_has_basic_scaling();
      scaling_.basic_scaling_ = basic_scaling;
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.basic_scaling)
  }
  
  // optional .google.appengine.v1.ManualScaling manual_scaling = 5;
  bool Version::has_manual_scaling() const {
    return scaling_case() == kManualScaling;
  }
  void Version::set_has_manual_scaling() {
    _oneof_case_[0] = kManualScaling;
  }
  void Version::clear_manual_scaling() {
    if (has_manual_scaling()) {
      delete scaling_.manual_scaling_;
      clear_has_scaling();
    }
  }
   const ::google::appengine::v1::ManualScaling& Version::manual_scaling() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.manual_scaling)
    return has_manual_scaling()
        ? *scaling_.manual_scaling_
        : ::google::appengine::v1::ManualScaling::default_instance();
  }
  ::google::appengine::v1::ManualScaling* Version::mutable_manual_scaling() {
    if (!has_manual_scaling()) {
      clear_scaling();
      set_has_manual_scaling();
      scaling_.manual_scaling_ = new ::google::appengine::v1::ManualScaling;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.manual_scaling)
    return scaling_.manual_scaling_;
  }
  ::google::appengine::v1::ManualScaling* Version::release_manual_scaling() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.manual_scaling)
    if (has_manual_scaling()) {
      clear_has_scaling();
      ::google::appengine::v1::ManualScaling* temp = scaling_.manual_scaling_;
      scaling_.manual_scaling_ = NULL;
      return temp;
    } else {
      return NULL;
    }
  }
  void Version::set_allocated_manual_scaling(::google::appengine::v1::ManualScaling* manual_scaling) {
    clear_scaling();
    if (manual_scaling) {
      set_has_manual_scaling();
      scaling_.manual_scaling_ = manual_scaling;
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.manual_scaling)
  }
  
  // repeated .google.appengine.v1.InboundServiceType inbound_services = 6;
  int Version::inbound_services_size() const {
    return inbound_services_.size();
  }
  void Version::clear_inbound_services() {
    inbound_services_.Clear();
  }
  ::google::appengine::v1::InboundServiceType Version::inbound_services(int index) const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.inbound_services)
    return static_cast< ::google::appengine::v1::InboundServiceType >(inbound_services_.Get(index));
  }
  void Version::set_inbound_services(int index, ::google::appengine::v1::InboundServiceType value) {
    inbound_services_.Set(index, value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.inbound_services)
  }
  void Version::add_inbound_services(::google::appengine::v1::InboundServiceType value) {
    inbound_services_.Add(value);
    // @@protoc_insertion_point(field_add:google.appengine.v1.Version.inbound_services)
  }
  const ::google::protobuf::RepeatedField<int>&
  Version::inbound_services() const {
    // @@protoc_insertion_point(field_list:google.appengine.v1.Version.inbound_services)
    return inbound_services_;
  }
  ::google::protobuf::RepeatedField<int>*
  Version::mutable_inbound_services() {
    // @@protoc_insertion_point(field_mutable_list:google.appengine.v1.Version.inbound_services)
    return &inbound_services_;
  }
  
  // optional string instance_class = 7;
  void Version::clear_instance_class() {
    instance_class_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::instance_class() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.instance_class)
    return instance_class_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_instance_class(const ::std::string& value) {
    
    instance_class_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.instance_class)
  }
  void Version::set_instance_class(const char* value) {
    
    instance_class_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.instance_class)
  }
  void Version::set_instance_class(const char* value, size_t size) {
    
    instance_class_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.instance_class)
  }
  ::std::string* Version::mutable_instance_class() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.instance_class)
    return instance_class_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_instance_class() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.instance_class)
    
    return instance_class_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_instance_class(::std::string* instance_class) {
    if (instance_class != NULL) {
      
    } else {
      
    }
    instance_class_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_class);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.instance_class)
  }
  
  // optional .google.appengine.v1.Network network = 8;
  bool Version::has_network() const {
    return this != internal_default_instance() && network_ != NULL;
  }
  void Version::clear_network() {
    if (GetArenaNoVirtual() == NULL && network_ != NULL) delete network_;
    network_ = NULL;
  }
  const ::google::appengine::v1::Network& Version::network() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.network)
    return network_ != NULL ? *network_
                           : *::google::appengine::v1::Network::internal_default_instance();
  }
  ::google::appengine::v1::Network* Version::mutable_network() {
    
    if (network_ == NULL) {
      network_ = new ::google::appengine::v1::Network;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.network)
    return network_;
  }
  ::google::appengine::v1::Network* Version::release_network() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.network)
    
    ::google::appengine::v1::Network* temp = network_;
    network_ = NULL;
    return temp;
  }
  void Version::set_allocated_network(::google::appengine::v1::Network* network) {
    delete network_;
    network_ = network;
    if (network) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.network)
  }
  
  // optional .google.appengine.v1.Resources resources = 9;
  bool Version::has_resources() const {
    return this != internal_default_instance() && resources_ != NULL;
  }
  void Version::clear_resources() {
    if (GetArenaNoVirtual() == NULL && resources_ != NULL) delete resources_;
    resources_ = NULL;
  }
  const ::google::appengine::v1::Resources& Version::resources() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.resources)
    return resources_ != NULL ? *resources_
                           : *::google::appengine::v1::Resources::internal_default_instance();
  }
  ::google::appengine::v1::Resources* Version::mutable_resources() {
    
    if (resources_ == NULL) {
      resources_ = new ::google::appengine::v1::Resources;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.resources)
    return resources_;
  }
  ::google::appengine::v1::Resources* Version::release_resources() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.resources)
    
    ::google::appengine::v1::Resources* temp = resources_;
    resources_ = NULL;
    return temp;
  }
  void Version::set_allocated_resources(::google::appengine::v1::Resources* resources) {
    delete resources_;
    resources_ = resources;
    if (resources) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.resources)
  }
  
  // optional string runtime = 10;
  void Version::clear_runtime() {
    runtime_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::runtime() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.runtime)
    return runtime_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_runtime(const ::std::string& value) {
    
    runtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.runtime)
  }
  void Version::set_runtime(const char* value) {
    
    runtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.runtime)
  }
  void Version::set_runtime(const char* value, size_t size) {
    
    runtime_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.runtime)
  }
  ::std::string* Version::mutable_runtime() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.runtime)
    return runtime_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_runtime() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.runtime)
    
    return runtime_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_runtime(::std::string* runtime) {
    if (runtime != NULL) {
      
    } else {
      
    }
    runtime_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), runtime);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.runtime)
  }
  
  // optional bool threadsafe = 11;
  void Version::clear_threadsafe() {
    threadsafe_ = false;
  }
  bool Version::threadsafe() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.threadsafe)
    return threadsafe_;
  }
  void Version::set_threadsafe(bool value) {
    
    threadsafe_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.threadsafe)
  }
  
  // optional bool vm = 12;
  void Version::clear_vm() {
    vm_ = false;
  }
  bool Version::vm() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.vm)
    return vm_;
  }
  void Version::set_vm(bool value) {
    
    vm_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.vm)
  }
  
  // map<string, string> beta_settings = 13;
  int Version::beta_settings_size() const {
    return beta_settings_.size();
  }
  void Version::clear_beta_settings() {
    beta_settings_.Clear();
  }
   const ::google::protobuf::Map< ::std::string, ::std::string >&
  Version::beta_settings() const {
    // @@protoc_insertion_point(field_map:google.appengine.v1.Version.beta_settings)
    return beta_settings_.GetMap();
  }
   ::google::protobuf::Map< ::std::string, ::std::string >*
  Version::mutable_beta_settings() {
    // @@protoc_insertion_point(field_mutable_map:google.appengine.v1.Version.beta_settings)
    return beta_settings_.MutableMap();
  }
  
  // optional string env = 14;
  void Version::clear_env() {
    env_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::env() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.env)
    return env_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_env(const ::std::string& value) {
    
    env_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.env)
  }
  void Version::set_env(const char* value) {
    
    env_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.env)
  }
  void Version::set_env(const char* value, size_t size) {
    
    env_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.env)
  }
  ::std::string* Version::mutable_env() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.env)
    return env_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_env() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.env)
    
    return env_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_env(::std::string* env) {
    if (env != NULL) {
      
    } else {
      
    }
    env_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), env);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.env)
  }
  
  // optional .google.appengine.v1.ServingStatus serving_status = 15;
  void Version::clear_serving_status() {
    serving_status_ = 0;
  }
  ::google::appengine::v1::ServingStatus Version::serving_status() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.serving_status)
    return static_cast< ::google::appengine::v1::ServingStatus >(serving_status_);
  }
  void Version::set_serving_status(::google::appengine::v1::ServingStatus value) {
    
    serving_status_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.serving_status)
  }
  
  // optional string created_by = 16;
  void Version::clear_created_by() {
    created_by_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::created_by() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.created_by)
    return created_by_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_created_by(const ::std::string& value) {
    
    created_by_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.created_by)
  }
  void Version::set_created_by(const char* value) {
    
    created_by_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.created_by)
  }
  void Version::set_created_by(const char* value, size_t size) {
    
    created_by_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.created_by)
  }
  ::std::string* Version::mutable_created_by() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.created_by)
    return created_by_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_created_by() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.created_by)
    
    return created_by_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_created_by(::std::string* created_by) {
    if (created_by != NULL) {
      
    } else {
      
    }
    created_by_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), created_by);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.created_by)
  }
  
  // optional .google.protobuf.Timestamp create_time = 17;
  bool Version::has_create_time() const {
    return this != internal_default_instance() && create_time_ != NULL;
  }
  void Version::clear_create_time() {
    if (GetArenaNoVirtual() == NULL && create_time_ != NULL) delete create_time_;
    create_time_ = NULL;
  }
  const ::google::protobuf::Timestamp& Version::create_time() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.create_time)
    return create_time_ != NULL ? *create_time_
                           : *::google::protobuf::Timestamp::internal_default_instance();
  }
  ::google::protobuf::Timestamp* Version::mutable_create_time() {
    
    if (create_time_ == NULL) {
      create_time_ = new ::google::protobuf::Timestamp;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.create_time)
    return create_time_;
  }
  ::google::protobuf::Timestamp* Version::release_create_time() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.create_time)
    
    ::google::protobuf::Timestamp* temp = create_time_;
    create_time_ = NULL;
    return temp;
  }
  void Version::set_allocated_create_time(::google::protobuf::Timestamp* create_time) {
    delete create_time_;
    if (create_time != NULL && create_time->GetArena() != NULL) {
      ::google::protobuf::Timestamp* new_create_time = new ::google::protobuf::Timestamp;
      new_create_time->CopyFrom(*create_time);
      create_time = new_create_time;
    }
    create_time_ = create_time;
    if (create_time) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.create_time)
  }
  
  // optional int64 disk_usage_bytes = 18;
  void Version::clear_disk_usage_bytes() {
    disk_usage_bytes_ = GOOGLE_LONGLONG(0);
  }
  ::google::protobuf::int64 Version::disk_usage_bytes() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.disk_usage_bytes)
    return disk_usage_bytes_;
  }
  void Version::set_disk_usage_bytes(::google::protobuf::int64 value) {
    
    disk_usage_bytes_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.disk_usage_bytes)
  }
  
  // repeated .google.appengine.v1.UrlMap handlers = 100;
  int Version::handlers_size() const {
    return handlers_.size();
  }
  void Version::clear_handlers() {
    handlers_.Clear();
  }
  const ::google::appengine::v1::UrlMap& Version::handlers(int index) const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.handlers)
    return handlers_.Get(index);
  }
  ::google::appengine::v1::UrlMap* Version::mutable_handlers(int index) {
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.handlers)
    return handlers_.Mutable(index);
  }
  ::google::appengine::v1::UrlMap* Version::add_handlers() {
    // @@protoc_insertion_point(field_add:google.appengine.v1.Version.handlers)
    return handlers_.Add();
  }
  ::google::protobuf::RepeatedPtrField< ::google::appengine::v1::UrlMap >*
  Version::mutable_handlers() {
    // @@protoc_insertion_point(field_mutable_list:google.appengine.v1.Version.handlers)
    return &handlers_;
  }
  const ::google::protobuf::RepeatedPtrField< ::google::appengine::v1::UrlMap >&
  Version::handlers() const {
    // @@protoc_insertion_point(field_list:google.appengine.v1.Version.handlers)
    return handlers_;
  }
  
  // repeated .google.appengine.v1.ErrorHandler error_handlers = 101;
  int Version::error_handlers_size() const {
    return error_handlers_.size();
  }
  void Version::clear_error_handlers() {
    error_handlers_.Clear();
  }
  const ::google::appengine::v1::ErrorHandler& Version::error_handlers(int index) const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.error_handlers)
    return error_handlers_.Get(index);
  }
  ::google::appengine::v1::ErrorHandler* Version::mutable_error_handlers(int index) {
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.error_handlers)
    return error_handlers_.Mutable(index);
  }
  ::google::appengine::v1::ErrorHandler* Version::add_error_handlers() {
    // @@protoc_insertion_point(field_add:google.appengine.v1.Version.error_handlers)
    return error_handlers_.Add();
  }
  ::google::protobuf::RepeatedPtrField< ::google::appengine::v1::ErrorHandler >*
  Version::mutable_error_handlers() {
    // @@protoc_insertion_point(field_mutable_list:google.appengine.v1.Version.error_handlers)
    return &error_handlers_;
  }
  const ::google::protobuf::RepeatedPtrField< ::google::appengine::v1::ErrorHandler >&
  Version::error_handlers() const {
    // @@protoc_insertion_point(field_list:google.appengine.v1.Version.error_handlers)
    return error_handlers_;
  }
  
  // repeated .google.appengine.v1.Library libraries = 102;
  int Version::libraries_size() const {
    return libraries_.size();
  }
  void Version::clear_libraries() {
    libraries_.Clear();
  }
  const ::google::appengine::v1::Library& Version::libraries(int index) const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.libraries)
    return libraries_.Get(index);
  }
  ::google::appengine::v1::Library* Version::mutable_libraries(int index) {
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.libraries)
    return libraries_.Mutable(index);
  }
  ::google::appengine::v1::Library* Version::add_libraries() {
    // @@protoc_insertion_point(field_add:google.appengine.v1.Version.libraries)
    return libraries_.Add();
  }
  ::google::protobuf::RepeatedPtrField< ::google::appengine::v1::Library >*
  Version::mutable_libraries() {
    // @@protoc_insertion_point(field_mutable_list:google.appengine.v1.Version.libraries)
    return &libraries_;
  }
  const ::google::protobuf::RepeatedPtrField< ::google::appengine::v1::Library >&
  Version::libraries() const {
    // @@protoc_insertion_point(field_list:google.appengine.v1.Version.libraries)
    return libraries_;
  }
  
  // optional .google.appengine.v1.ApiConfigHandler api_config = 103;
  bool Version::has_api_config() const {
    return this != internal_default_instance() && api_config_ != NULL;
  }
  void Version::clear_api_config() {
    if (GetArenaNoVirtual() == NULL && api_config_ != NULL) delete api_config_;
    api_config_ = NULL;
  }
  const ::google::appengine::v1::ApiConfigHandler& Version::api_config() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.api_config)
    return api_config_ != NULL ? *api_config_
                           : *::google::appengine::v1::ApiConfigHandler::internal_default_instance();
  }
  ::google::appengine::v1::ApiConfigHandler* Version::mutable_api_config() {
    
    if (api_config_ == NULL) {
      api_config_ = new ::google::appengine::v1::ApiConfigHandler;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.api_config)
    return api_config_;
  }
  ::google::appengine::v1::ApiConfigHandler* Version::release_api_config() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.api_config)
    
    ::google::appengine::v1::ApiConfigHandler* temp = api_config_;
    api_config_ = NULL;
    return temp;
  }
  void Version::set_allocated_api_config(::google::appengine::v1::ApiConfigHandler* api_config) {
    delete api_config_;
    api_config_ = api_config;
    if (api_config) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.api_config)
  }
  
  // map<string, string> env_variables = 104;
  int Version::env_variables_size() const {
    return env_variables_.size();
  }
  void Version::clear_env_variables() {
    env_variables_.Clear();
  }
   const ::google::protobuf::Map< ::std::string, ::std::string >&
  Version::env_variables() const {
    // @@protoc_insertion_point(field_map:google.appengine.v1.Version.env_variables)
    return env_variables_.GetMap();
  }
   ::google::protobuf::Map< ::std::string, ::std::string >*
  Version::mutable_env_variables() {
    // @@protoc_insertion_point(field_mutable_map:google.appengine.v1.Version.env_variables)
    return env_variables_.MutableMap();
  }
  
  // optional .google.protobuf.Duration default_expiration = 105;
  bool Version::has_default_expiration() const {
    return this != internal_default_instance() && default_expiration_ != NULL;
  }
  void Version::clear_default_expiration() {
    if (GetArenaNoVirtual() == NULL && default_expiration_ != NULL) delete default_expiration_;
    default_expiration_ = NULL;
  }
  const ::google::protobuf::Duration& Version::default_expiration() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.default_expiration)
    return default_expiration_ != NULL ? *default_expiration_
                           : *::google::protobuf::Duration::internal_default_instance();
  }
  ::google::protobuf::Duration* Version::mutable_default_expiration() {
    
    if (default_expiration_ == NULL) {
      default_expiration_ = new ::google::protobuf::Duration;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.default_expiration)
    return default_expiration_;
  }
  ::google::protobuf::Duration* Version::release_default_expiration() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.default_expiration)
    
    ::google::protobuf::Duration* temp = default_expiration_;
    default_expiration_ = NULL;
    return temp;
  }
  void Version::set_allocated_default_expiration(::google::protobuf::Duration* default_expiration) {
    delete default_expiration_;
    if (default_expiration != NULL && default_expiration->GetArena() != NULL) {
      ::google::protobuf::Duration* new_default_expiration = new ::google::protobuf::Duration;
      new_default_expiration->CopyFrom(*default_expiration);
      default_expiration = new_default_expiration;
    }
    default_expiration_ = default_expiration;
    if (default_expiration) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.default_expiration)
  }
  
  // optional .google.appengine.v1.HealthCheck health_check = 106;
  bool Version::has_health_check() const {
    return this != internal_default_instance() && health_check_ != NULL;
  }
  void Version::clear_health_check() {
    if (GetArenaNoVirtual() == NULL && health_check_ != NULL) delete health_check_;
    health_check_ = NULL;
  }
  const ::google::appengine::v1::HealthCheck& Version::health_check() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.health_check)
    return health_check_ != NULL ? *health_check_
                           : *::google::appengine::v1::HealthCheck::internal_default_instance();
  }
  ::google::appengine::v1::HealthCheck* Version::mutable_health_check() {
    
    if (health_check_ == NULL) {
      health_check_ = new ::google::appengine::v1::HealthCheck;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.health_check)
    return health_check_;
  }
  ::google::appengine::v1::HealthCheck* Version::release_health_check() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.health_check)
    
    ::google::appengine::v1::HealthCheck* temp = health_check_;
    health_check_ = NULL;
    return temp;
  }
  void Version::set_allocated_health_check(::google::appengine::v1::HealthCheck* health_check) {
    delete health_check_;
    health_check_ = health_check;
    if (health_check) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.health_check)
  }
  
  // optional string nobuild_files_regex = 107;
  void Version::clear_nobuild_files_regex() {
    nobuild_files_regex_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::nobuild_files_regex() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.nobuild_files_regex)
    return nobuild_files_regex_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_nobuild_files_regex(const ::std::string& value) {
    
    nobuild_files_regex_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.nobuild_files_regex)
  }
  void Version::set_nobuild_files_regex(const char* value) {
    
    nobuild_files_regex_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.nobuild_files_regex)
  }
  void Version::set_nobuild_files_regex(const char* value, size_t size) {
    
    nobuild_files_regex_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.nobuild_files_regex)
  }
  ::std::string* Version::mutable_nobuild_files_regex() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.nobuild_files_regex)
    return nobuild_files_regex_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_nobuild_files_regex() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.nobuild_files_regex)
    
    return nobuild_files_regex_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_nobuild_files_regex(::std::string* nobuild_files_regex) {
    if (nobuild_files_regex != NULL) {
      
    } else {
      
    }
    nobuild_files_regex_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nobuild_files_regex);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.nobuild_files_regex)
  }
  
  // optional .google.appengine.v1.Deployment deployment = 108;
  bool Version::has_deployment() const {
    return this != internal_default_instance() && deployment_ != NULL;
  }
  void Version::clear_deployment() {
    if (GetArenaNoVirtual() == NULL && deployment_ != NULL) delete deployment_;
    deployment_ = NULL;
  }
  const ::google::appengine::v1::Deployment& Version::deployment() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.deployment)
    return deployment_ != NULL ? *deployment_
                           : *::google::appengine::v1::Deployment::internal_default_instance();
  }
  ::google::appengine::v1::Deployment* Version::mutable_deployment() {
    
    if (deployment_ == NULL) {
      deployment_ = new ::google::appengine::v1::Deployment;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.deployment)
    return deployment_;
  }
  ::google::appengine::v1::Deployment* Version::release_deployment() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.deployment)
    
    ::google::appengine::v1::Deployment* temp = deployment_;
    deployment_ = NULL;
    return temp;
  }
  void Version::set_allocated_deployment(::google::appengine::v1::Deployment* deployment) {
    delete deployment_;
    deployment_ = deployment;
    if (deployment) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.deployment)
  }
  
  // optional string version_url = 109;
  void Version::clear_version_url() {
    version_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Version::version_url() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Version.version_url)
    return version_url_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_version_url(const ::std::string& value) {
    
    version_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Version.version_url)
  }
  void Version::set_version_url(const char* value) {
    
    version_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Version.version_url)
  }
  void Version::set_version_url(const char* value, size_t size) {
    
    version_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Version.version_url)
  }
  ::std::string* Version::mutable_version_url() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Version.version_url)
    return version_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Version::release_version_url() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Version.version_url)
    
    return version_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Version::set_allocated_version_url(::std::string* version_url) {
    if (version_url != NULL) {
      
    } else {
      
    }
    version_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), version_url);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Version.version_url)
  }
  
  bool Version::has_scaling() const {
    return scaling_case() != SCALING_NOT_SET;
  }
  void Version::clear_has_scaling() {
    _oneof_case_[0] = SCALING_NOT_SET;
  }
  Version::ScalingCase Version::scaling_case() const {
    return Version::ScalingCase(_oneof_case_[0]);
  }
  inline const Version* Version::internal_default_instance() {
    return &Version_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int AutomaticScaling::kCoolDownPeriodFieldNumber;
  const int AutomaticScaling::kCpuUtilizationFieldNumber;
  const int AutomaticScaling::kMaxConcurrentRequestsFieldNumber;
  const int AutomaticScaling::kMaxIdleInstancesFieldNumber;
  const int AutomaticScaling::kMaxTotalInstancesFieldNumber;
  const int AutomaticScaling::kMaxPendingLatencyFieldNumber;
  const int AutomaticScaling::kMinIdleInstancesFieldNumber;
  const int AutomaticScaling::kMinTotalInstancesFieldNumber;
  const int AutomaticScaling::kMinPendingLatencyFieldNumber;
  const int AutomaticScaling::kRequestUtilizationFieldNumber;
  const int AutomaticScaling::kDiskUtilizationFieldNumber;
  const int AutomaticScaling::kNetworkUtilizationFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  AutomaticScaling::AutomaticScaling()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.AutomaticScaling)
  }
  
  void AutomaticScaling::InitAsDefaultInstance() {
    cool_down_period_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
    cpu_utilization_ = const_cast< ::google::appengine::v1::CpuUtilization*>(
        ::google::appengine::v1::CpuUtilization::internal_default_instance());
    max_pending_latency_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
    min_pending_latency_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
    request_utilization_ = const_cast< ::google::appengine::v1::RequestUtilization*>(
        ::google::appengine::v1::RequestUtilization::internal_default_instance());
    disk_utilization_ = const_cast< ::google::appengine::v1::DiskUtilization*>(
        ::google::appengine::v1::DiskUtilization::internal_default_instance());
    network_utilization_ = const_cast< ::google::appengine::v1::NetworkUtilization*>(
        ::google::appengine::v1::NetworkUtilization::internal_default_instance());
  }
  
  AutomaticScaling::AutomaticScaling(const AutomaticScaling& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.AutomaticScaling)
  }
  
  void AutomaticScaling::SharedCtor() {
    cool_down_period_ = NULL;
    cpu_utilization_ = NULL;
    max_pending_latency_ = NULL;
    min_pending_latency_ = NULL;
    request_utilization_ = NULL;
    disk_utilization_ = NULL;
    network_utilization_ = NULL;
    ::memset(&max_concurrent_requests_, 0, reinterpret_cast<char*>(&min_total_instances_) -
      reinterpret_cast<char*>(&max_concurrent_requests_) + sizeof(min_total_instances_));
    _cached_size_ = 0;
  }
  
  AutomaticScaling::~AutomaticScaling() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.AutomaticScaling)
    SharedDtor();
  }
  
  void AutomaticScaling::SharedDtor() {
    if (this != &AutomaticScaling_default_instance_.get()) {
      delete cool_down_period_;
      delete cpu_utilization_;
      delete max_pending_latency_;
      delete min_pending_latency_;
      delete request_utilization_;
      delete disk_utilization_;
      delete network_utilization_;
    }
  }
  
  void AutomaticScaling::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* AutomaticScaling::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return AutomaticScaling_descriptor_;
  }
  
  const AutomaticScaling& AutomaticScaling::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<AutomaticScaling> AutomaticScaling_default_instance_;
  
  AutomaticScaling* AutomaticScaling::New(::google::protobuf::Arena* arena) const {
    AutomaticScaling* n = new AutomaticScaling;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void AutomaticScaling::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.AutomaticScaling)
  #if defined(__clang__)
  #define ZR_HELPER_(f) \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \
    __builtin_offsetof(AutomaticScaling, f) \
    _Pragma("clang diagnostic pop")
  #else
  #define ZR_HELPER_(f) reinterpret_cast<char*>(\
    &reinterpret_cast<AutomaticScaling*>(16)->f)
  #endif
  
  #define ZR_(first, last) do {\
    ::memset(&(first), 0,\
             ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
  } while (0)
  
    ZR_(max_concurrent_requests_, min_total_instances_);
    if (GetArenaNoVirtual() == NULL && cool_down_period_ != NULL) delete cool_down_period_;
    cool_down_period_ = NULL;
    if (GetArenaNoVirtual() == NULL && cpu_utilization_ != NULL) delete cpu_utilization_;
    cpu_utilization_ = NULL;
    if (GetArenaNoVirtual() == NULL && max_pending_latency_ != NULL) delete max_pending_latency_;
    max_pending_latency_ = NULL;
    if (GetArenaNoVirtual() == NULL && min_pending_latency_ != NULL) delete min_pending_latency_;
    min_pending_latency_ = NULL;
    if (GetArenaNoVirtual() == NULL && request_utilization_ != NULL) delete request_utilization_;
    request_utilization_ = NULL;
    if (GetArenaNoVirtual() == NULL && disk_utilization_ != NULL) delete disk_utilization_;
    disk_utilization_ = NULL;
    if (GetArenaNoVirtual() == NULL && network_utilization_ != NULL) delete network_utilization_;
    network_utilization_ = NULL;
  
  #undef ZR_HELPER_
  #undef ZR_
  
  }
  
  bool AutomaticScaling::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.AutomaticScaling)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional .google.protobuf.Duration cool_down_period = 1;
        case 1: {
          if (tag == 10) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_cool_down_period()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(18)) goto parse_cpu_utilization;
          break;
        }
  
        // optional .google.appengine.v1.CpuUtilization cpu_utilization = 2;
        case 2: {
          if (tag == 18) {
           parse_cpu_utilization:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_cpu_utilization()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(24)) goto parse_max_concurrent_requests;
          break;
        }
  
        // optional int32 max_concurrent_requests = 3;
        case 3: {
          if (tag == 24) {
           parse_max_concurrent_requests:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &max_concurrent_requests_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(32)) goto parse_max_idle_instances;
          break;
        }
  
        // optional int32 max_idle_instances = 4;
        case 4: {
          if (tag == 32) {
           parse_max_idle_instances:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &max_idle_instances_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(40)) goto parse_max_total_instances;
          break;
        }
  
        // optional int32 max_total_instances = 5;
        case 5: {
          if (tag == 40) {
           parse_max_total_instances:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &max_total_instances_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(50)) goto parse_max_pending_latency;
          break;
        }
  
        // optional .google.protobuf.Duration max_pending_latency = 6;
        case 6: {
          if (tag == 50) {
           parse_max_pending_latency:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_max_pending_latency()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(56)) goto parse_min_idle_instances;
          break;
        }
  
        // optional int32 min_idle_instances = 7;
        case 7: {
          if (tag == 56) {
           parse_min_idle_instances:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &min_idle_instances_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(64)) goto parse_min_total_instances;
          break;
        }
  
        // optional int32 min_total_instances = 8;
        case 8: {
          if (tag == 64) {
           parse_min_total_instances:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &min_total_instances_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(74)) goto parse_min_pending_latency;
          break;
        }
  
        // optional .google.protobuf.Duration min_pending_latency = 9;
        case 9: {
          if (tag == 74) {
           parse_min_pending_latency:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_min_pending_latency()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(82)) goto parse_request_utilization;
          break;
        }
  
        // optional .google.appengine.v1.RequestUtilization request_utilization = 10;
        case 10: {
          if (tag == 82) {
           parse_request_utilization:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_request_utilization()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(90)) goto parse_disk_utilization;
          break;
        }
  
        // optional .google.appengine.v1.DiskUtilization disk_utilization = 11;
        case 11: {
          if (tag == 90) {
           parse_disk_utilization:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_disk_utilization()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(98)) goto parse_network_utilization;
          break;
        }
  
        // optional .google.appengine.v1.NetworkUtilization network_utilization = 12;
        case 12: {
          if (tag == 98) {
           parse_network_utilization:
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_network_utilization()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.AutomaticScaling)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.AutomaticScaling)
    return false;
  #undef DO_
  }
  
  void AutomaticScaling::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.AutomaticScaling)
    // optional .google.protobuf.Duration cool_down_period = 1;
    if (this->has_cool_down_period()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, *this->cool_down_period_, output);
    }
  
    // optional .google.appengine.v1.CpuUtilization cpu_utilization = 2;
    if (this->has_cpu_utilization()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        2, *this->cpu_utilization_, output);
    }
  
    // optional int32 max_concurrent_requests = 3;
    if (this->max_concurrent_requests() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->max_concurrent_requests(), output);
    }
  
    // optional int32 max_idle_instances = 4;
    if (this->max_idle_instances() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->max_idle_instances(), output);
    }
  
    // optional int32 max_total_instances = 5;
    if (this->max_total_instances() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->max_total_instances(), output);
    }
  
    // optional .google.protobuf.Duration max_pending_latency = 6;
    if (this->has_max_pending_latency()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        6, *this->max_pending_latency_, output);
    }
  
    // optional int32 min_idle_instances = 7;
    if (this->min_idle_instances() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(7, this->min_idle_instances(), output);
    }
  
    // optional int32 min_total_instances = 8;
    if (this->min_total_instances() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->min_total_instances(), output);
    }
  
    // optional .google.protobuf.Duration min_pending_latency = 9;
    if (this->has_min_pending_latency()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        9, *this->min_pending_latency_, output);
    }
  
    // optional .google.appengine.v1.RequestUtilization request_utilization = 10;
    if (this->has_request_utilization()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        10, *this->request_utilization_, output);
    }
  
    // optional .google.appengine.v1.DiskUtilization disk_utilization = 11;
    if (this->has_disk_utilization()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        11, *this->disk_utilization_, output);
    }
  
    // optional .google.appengine.v1.NetworkUtilization network_utilization = 12;
    if (this->has_network_utilization()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        12, *this->network_utilization_, output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.AutomaticScaling)
  }
  
  ::google::protobuf::uint8* AutomaticScaling::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.AutomaticScaling)
    // optional .google.protobuf.Duration cool_down_period = 1;
    if (this->has_cool_down_period()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          1, *this->cool_down_period_, false, target);
    }
  
    // optional .google.appengine.v1.CpuUtilization cpu_utilization = 2;
    if (this->has_cpu_utilization()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          2, *this->cpu_utilization_, false, target);
    }
  
    // optional int32 max_concurrent_requests = 3;
    if (this->max_concurrent_requests() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->max_concurrent_requests(), target);
    }
  
    // optional int32 max_idle_instances = 4;
    if (this->max_idle_instances() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->max_idle_instances(), target);
    }
  
    // optional int32 max_total_instances = 5;
    if (this->max_total_instances() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->max_total_instances(), target);
    }
  
    // optional .google.protobuf.Duration max_pending_latency = 6;
    if (this->has_max_pending_latency()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          6, *this->max_pending_latency_, false, target);
    }
  
    // optional int32 min_idle_instances = 7;
    if (this->min_idle_instances() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(7, this->min_idle_instances(), target);
    }
  
    // optional int32 min_total_instances = 8;
    if (this->min_total_instances() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->min_total_instances(), target);
    }
  
    // optional .google.protobuf.Duration min_pending_latency = 9;
    if (this->has_min_pending_latency()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          9, *this->min_pending_latency_, false, target);
    }
  
    // optional .google.appengine.v1.RequestUtilization request_utilization = 10;
    if (this->has_request_utilization()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          10, *this->request_utilization_, false, target);
    }
  
    // optional .google.appengine.v1.DiskUtilization disk_utilization = 11;
    if (this->has_disk_utilization()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          11, *this->disk_utilization_, false, target);
    }
  
    // optional .google.appengine.v1.NetworkUtilization network_utilization = 12;
    if (this->has_network_utilization()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          12, *this->network_utilization_, false, target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.AutomaticScaling)
    return target;
  }
  
  size_t AutomaticScaling::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.AutomaticScaling)
    size_t total_size = 0;
  
    // optional .google.protobuf.Duration cool_down_period = 1;
    if (this->has_cool_down_period()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->cool_down_period_);
    }
  
    // optional .google.appengine.v1.CpuUtilization cpu_utilization = 2;
    if (this->has_cpu_utilization()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->cpu_utilization_);
    }
  
    // optional int32 max_concurrent_requests = 3;
    if (this->max_concurrent_requests() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->max_concurrent_requests());
    }
  
    // optional int32 max_idle_instances = 4;
    if (this->max_idle_instances() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->max_idle_instances());
    }
  
    // optional int32 max_total_instances = 5;
    if (this->max_total_instances() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->max_total_instances());
    }
  
    // optional .google.protobuf.Duration max_pending_latency = 6;
    if (this->has_max_pending_latency()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->max_pending_latency_);
    }
  
    // optional int32 min_idle_instances = 7;
    if (this->min_idle_instances() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->min_idle_instances());
    }
  
    // optional int32 min_total_instances = 8;
    if (this->min_total_instances() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->min_total_instances());
    }
  
    // optional .google.protobuf.Duration min_pending_latency = 9;
    if (this->has_min_pending_latency()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->min_pending_latency_);
    }
  
    // optional .google.appengine.v1.RequestUtilization request_utilization = 10;
    if (this->has_request_utilization()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->request_utilization_);
    }
  
    // optional .google.appengine.v1.DiskUtilization disk_utilization = 11;
    if (this->has_disk_utilization()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->disk_utilization_);
    }
  
    // optional .google.appengine.v1.NetworkUtilization network_utilization = 12;
    if (this->has_network_utilization()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->network_utilization_);
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void AutomaticScaling::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.AutomaticScaling)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const AutomaticScaling* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const AutomaticScaling>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.AutomaticScaling)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.AutomaticScaling)
      UnsafeMergeFrom(*source);
    }
  }
  
  void AutomaticScaling::MergeFrom(const AutomaticScaling& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.AutomaticScaling)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void AutomaticScaling::UnsafeMergeFrom(const AutomaticScaling& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.has_cool_down_period()) {
      mutable_cool_down_period()->::google::protobuf::Duration::MergeFrom(from.cool_down_period());
    }
    if (from.has_cpu_utilization()) {
      mutable_cpu_utilization()->::google::appengine::v1::CpuUtilization::MergeFrom(from.cpu_utilization());
    }
    if (from.max_concurrent_requests() != 0) {
      set_max_concurrent_requests(from.max_concurrent_requests());
    }
    if (from.max_idle_instances() != 0) {
      set_max_idle_instances(from.max_idle_instances());
    }
    if (from.max_total_instances() != 0) {
      set_max_total_instances(from.max_total_instances());
    }
    if (from.has_max_pending_latency()) {
      mutable_max_pending_latency()->::google::protobuf::Duration::MergeFrom(from.max_pending_latency());
    }
    if (from.min_idle_instances() != 0) {
      set_min_idle_instances(from.min_idle_instances());
    }
    if (from.min_total_instances() != 0) {
      set_min_total_instances(from.min_total_instances());
    }
    if (from.has_min_pending_latency()) {
      mutable_min_pending_latency()->::google::protobuf::Duration::MergeFrom(from.min_pending_latency());
    }
    if (from.has_request_utilization()) {
      mutable_request_utilization()->::google::appengine::v1::RequestUtilization::MergeFrom(from.request_utilization());
    }
    if (from.has_disk_utilization()) {
      mutable_disk_utilization()->::google::appengine::v1::DiskUtilization::MergeFrom(from.disk_utilization());
    }
    if (from.has_network_utilization()) {
      mutable_network_utilization()->::google::appengine::v1::NetworkUtilization::MergeFrom(from.network_utilization());
    }
  }
  
  void AutomaticScaling::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.AutomaticScaling)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void AutomaticScaling::CopyFrom(const AutomaticScaling& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.AutomaticScaling)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool AutomaticScaling::IsInitialized() const {
  
    return true;
  }
  
  void AutomaticScaling::Swap(AutomaticScaling* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void AutomaticScaling::InternalSwap(AutomaticScaling* other) {
    std::swap(cool_down_period_, other->cool_down_period_);
    std::swap(cpu_utilization_, other->cpu_utilization_);
    std::swap(max_concurrent_requests_, other->max_concurrent_requests_);
    std::swap(max_idle_instances_, other->max_idle_instances_);
    std::swap(max_total_instances_, other->max_total_instances_);
    std::swap(max_pending_latency_, other->max_pending_latency_);
    std::swap(min_idle_instances_, other->min_idle_instances_);
    std::swap(min_total_instances_, other->min_total_instances_);
    std::swap(min_pending_latency_, other->min_pending_latency_);
    std::swap(request_utilization_, other->request_utilization_);
    std::swap(disk_utilization_, other->disk_utilization_);
    std::swap(network_utilization_, other->network_utilization_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata AutomaticScaling::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = AutomaticScaling_descriptor_;
    metadata.reflection = AutomaticScaling_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // AutomaticScaling
  
  // optional .google.protobuf.Duration cool_down_period = 1;
  bool AutomaticScaling::has_cool_down_period() const {
    return this != internal_default_instance() && cool_down_period_ != NULL;
  }
  void AutomaticScaling::clear_cool_down_period() {
    if (GetArenaNoVirtual() == NULL && cool_down_period_ != NULL) delete cool_down_period_;
    cool_down_period_ = NULL;
  }
  const ::google::protobuf::Duration& AutomaticScaling::cool_down_period() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.cool_down_period)
    return cool_down_period_ != NULL ? *cool_down_period_
                           : *::google::protobuf::Duration::internal_default_instance();
  }
  ::google::protobuf::Duration* AutomaticScaling::mutable_cool_down_period() {
    
    if (cool_down_period_ == NULL) {
      cool_down_period_ = new ::google::protobuf::Duration;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.cool_down_period)
    return cool_down_period_;
  }
  ::google::protobuf::Duration* AutomaticScaling::release_cool_down_period() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.cool_down_period)
    
    ::google::protobuf::Duration* temp = cool_down_period_;
    cool_down_period_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_cool_down_period(::google::protobuf::Duration* cool_down_period) {
    delete cool_down_period_;
    if (cool_down_period != NULL && cool_down_period->GetArena() != NULL) {
      ::google::protobuf::Duration* new_cool_down_period = new ::google::protobuf::Duration;
      new_cool_down_period->CopyFrom(*cool_down_period);
      cool_down_period = new_cool_down_period;
    }
    cool_down_period_ = cool_down_period;
    if (cool_down_period) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.cool_down_period)
  }
  
  // optional .google.appengine.v1.CpuUtilization cpu_utilization = 2;
  bool AutomaticScaling::has_cpu_utilization() const {
    return this != internal_default_instance() && cpu_utilization_ != NULL;
  }
  void AutomaticScaling::clear_cpu_utilization() {
    if (GetArenaNoVirtual() == NULL && cpu_utilization_ != NULL) delete cpu_utilization_;
    cpu_utilization_ = NULL;
  }
  const ::google::appengine::v1::CpuUtilization& AutomaticScaling::cpu_utilization() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.cpu_utilization)
    return cpu_utilization_ != NULL ? *cpu_utilization_
                           : *::google::appengine::v1::CpuUtilization::internal_default_instance();
  }
  ::google::appengine::v1::CpuUtilization* AutomaticScaling::mutable_cpu_utilization() {
    
    if (cpu_utilization_ == NULL) {
      cpu_utilization_ = new ::google::appengine::v1::CpuUtilization;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.cpu_utilization)
    return cpu_utilization_;
  }
  ::google::appengine::v1::CpuUtilization* AutomaticScaling::release_cpu_utilization() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.cpu_utilization)
    
    ::google::appengine::v1::CpuUtilization* temp = cpu_utilization_;
    cpu_utilization_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_cpu_utilization(::google::appengine::v1::CpuUtilization* cpu_utilization) {
    delete cpu_utilization_;
    cpu_utilization_ = cpu_utilization;
    if (cpu_utilization) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.cpu_utilization)
  }
  
  // optional int32 max_concurrent_requests = 3;
  void AutomaticScaling::clear_max_concurrent_requests() {
    max_concurrent_requests_ = 0;
  }
  ::google::protobuf::int32 AutomaticScaling::max_concurrent_requests() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.max_concurrent_requests)
    return max_concurrent_requests_;
  }
  void AutomaticScaling::set_max_concurrent_requests(::google::protobuf::int32 value) {
    
    max_concurrent_requests_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.AutomaticScaling.max_concurrent_requests)
  }
  
  // optional int32 max_idle_instances = 4;
  void AutomaticScaling::clear_max_idle_instances() {
    max_idle_instances_ = 0;
  }
  ::google::protobuf::int32 AutomaticScaling::max_idle_instances() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.max_idle_instances)
    return max_idle_instances_;
  }
  void AutomaticScaling::set_max_idle_instances(::google::protobuf::int32 value) {
    
    max_idle_instances_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.AutomaticScaling.max_idle_instances)
  }
  
  // optional int32 max_total_instances = 5;
  void AutomaticScaling::clear_max_total_instances() {
    max_total_instances_ = 0;
  }
  ::google::protobuf::int32 AutomaticScaling::max_total_instances() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.max_total_instances)
    return max_total_instances_;
  }
  void AutomaticScaling::set_max_total_instances(::google::protobuf::int32 value) {
    
    max_total_instances_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.AutomaticScaling.max_total_instances)
  }
  
  // optional .google.protobuf.Duration max_pending_latency = 6;
  bool AutomaticScaling::has_max_pending_latency() const {
    return this != internal_default_instance() && max_pending_latency_ != NULL;
  }
  void AutomaticScaling::clear_max_pending_latency() {
    if (GetArenaNoVirtual() == NULL && max_pending_latency_ != NULL) delete max_pending_latency_;
    max_pending_latency_ = NULL;
  }
  const ::google::protobuf::Duration& AutomaticScaling::max_pending_latency() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.max_pending_latency)
    return max_pending_latency_ != NULL ? *max_pending_latency_
                           : *::google::protobuf::Duration::internal_default_instance();
  }
  ::google::protobuf::Duration* AutomaticScaling::mutable_max_pending_latency() {
    
    if (max_pending_latency_ == NULL) {
      max_pending_latency_ = new ::google::protobuf::Duration;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.max_pending_latency)
    return max_pending_latency_;
  }
  ::google::protobuf::Duration* AutomaticScaling::release_max_pending_latency() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.max_pending_latency)
    
    ::google::protobuf::Duration* temp = max_pending_latency_;
    max_pending_latency_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_max_pending_latency(::google::protobuf::Duration* max_pending_latency) {
    delete max_pending_latency_;
    if (max_pending_latency != NULL && max_pending_latency->GetArena() != NULL) {
      ::google::protobuf::Duration* new_max_pending_latency = new ::google::protobuf::Duration;
      new_max_pending_latency->CopyFrom(*max_pending_latency);
      max_pending_latency = new_max_pending_latency;
    }
    max_pending_latency_ = max_pending_latency;
    if (max_pending_latency) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.max_pending_latency)
  }
  
  // optional int32 min_idle_instances = 7;
  void AutomaticScaling::clear_min_idle_instances() {
    min_idle_instances_ = 0;
  }
  ::google::protobuf::int32 AutomaticScaling::min_idle_instances() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.min_idle_instances)
    return min_idle_instances_;
  }
  void AutomaticScaling::set_min_idle_instances(::google::protobuf::int32 value) {
    
    min_idle_instances_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.AutomaticScaling.min_idle_instances)
  }
  
  // optional int32 min_total_instances = 8;
  void AutomaticScaling::clear_min_total_instances() {
    min_total_instances_ = 0;
  }
  ::google::protobuf::int32 AutomaticScaling::min_total_instances() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.min_total_instances)
    return min_total_instances_;
  }
  void AutomaticScaling::set_min_total_instances(::google::protobuf::int32 value) {
    
    min_total_instances_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.AutomaticScaling.min_total_instances)
  }
  
  // optional .google.protobuf.Duration min_pending_latency = 9;
  bool AutomaticScaling::has_min_pending_latency() const {
    return this != internal_default_instance() && min_pending_latency_ != NULL;
  }
  void AutomaticScaling::clear_min_pending_latency() {
    if (GetArenaNoVirtual() == NULL && min_pending_latency_ != NULL) delete min_pending_latency_;
    min_pending_latency_ = NULL;
  }
  const ::google::protobuf::Duration& AutomaticScaling::min_pending_latency() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.min_pending_latency)
    return min_pending_latency_ != NULL ? *min_pending_latency_
                           : *::google::protobuf::Duration::internal_default_instance();
  }
  ::google::protobuf::Duration* AutomaticScaling::mutable_min_pending_latency() {
    
    if (min_pending_latency_ == NULL) {
      min_pending_latency_ = new ::google::protobuf::Duration;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.min_pending_latency)
    return min_pending_latency_;
  }
  ::google::protobuf::Duration* AutomaticScaling::release_min_pending_latency() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.min_pending_latency)
    
    ::google::protobuf::Duration* temp = min_pending_latency_;
    min_pending_latency_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_min_pending_latency(::google::protobuf::Duration* min_pending_latency) {
    delete min_pending_latency_;
    if (min_pending_latency != NULL && min_pending_latency->GetArena() != NULL) {
      ::google::protobuf::Duration* new_min_pending_latency = new ::google::protobuf::Duration;
      new_min_pending_latency->CopyFrom(*min_pending_latency);
      min_pending_latency = new_min_pending_latency;
    }
    min_pending_latency_ = min_pending_latency;
    if (min_pending_latency) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.min_pending_latency)
  }
  
  // optional .google.appengine.v1.RequestUtilization request_utilization = 10;
  bool AutomaticScaling::has_request_utilization() const {
    return this != internal_default_instance() && request_utilization_ != NULL;
  }
  void AutomaticScaling::clear_request_utilization() {
    if (GetArenaNoVirtual() == NULL && request_utilization_ != NULL) delete request_utilization_;
    request_utilization_ = NULL;
  }
  const ::google::appengine::v1::RequestUtilization& AutomaticScaling::request_utilization() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.request_utilization)
    return request_utilization_ != NULL ? *request_utilization_
                           : *::google::appengine::v1::RequestUtilization::internal_default_instance();
  }
  ::google::appengine::v1::RequestUtilization* AutomaticScaling::mutable_request_utilization() {
    
    if (request_utilization_ == NULL) {
      request_utilization_ = new ::google::appengine::v1::RequestUtilization;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.request_utilization)
    return request_utilization_;
  }
  ::google::appengine::v1::RequestUtilization* AutomaticScaling::release_request_utilization() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.request_utilization)
    
    ::google::appengine::v1::RequestUtilization* temp = request_utilization_;
    request_utilization_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_request_utilization(::google::appengine::v1::RequestUtilization* request_utilization) {
    delete request_utilization_;
    request_utilization_ = request_utilization;
    if (request_utilization) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.request_utilization)
  }
  
  // optional .google.appengine.v1.DiskUtilization disk_utilization = 11;
  bool AutomaticScaling::has_disk_utilization() const {
    return this != internal_default_instance() && disk_utilization_ != NULL;
  }
  void AutomaticScaling::clear_disk_utilization() {
    if (GetArenaNoVirtual() == NULL && disk_utilization_ != NULL) delete disk_utilization_;
    disk_utilization_ = NULL;
  }
  const ::google::appengine::v1::DiskUtilization& AutomaticScaling::disk_utilization() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.disk_utilization)
    return disk_utilization_ != NULL ? *disk_utilization_
                           : *::google::appengine::v1::DiskUtilization::internal_default_instance();
  }
  ::google::appengine::v1::DiskUtilization* AutomaticScaling::mutable_disk_utilization() {
    
    if (disk_utilization_ == NULL) {
      disk_utilization_ = new ::google::appengine::v1::DiskUtilization;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.disk_utilization)
    return disk_utilization_;
  }
  ::google::appengine::v1::DiskUtilization* AutomaticScaling::release_disk_utilization() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.disk_utilization)
    
    ::google::appengine::v1::DiskUtilization* temp = disk_utilization_;
    disk_utilization_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_disk_utilization(::google::appengine::v1::DiskUtilization* disk_utilization) {
    delete disk_utilization_;
    disk_utilization_ = disk_utilization;
    if (disk_utilization) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.disk_utilization)
  }
  
  // optional .google.appengine.v1.NetworkUtilization network_utilization = 12;
  bool AutomaticScaling::has_network_utilization() const {
    return this != internal_default_instance() && network_utilization_ != NULL;
  }
  void AutomaticScaling::clear_network_utilization() {
    if (GetArenaNoVirtual() == NULL && network_utilization_ != NULL) delete network_utilization_;
    network_utilization_ = NULL;
  }
  const ::google::appengine::v1::NetworkUtilization& AutomaticScaling::network_utilization() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.AutomaticScaling.network_utilization)
    return network_utilization_ != NULL ? *network_utilization_
                           : *::google::appengine::v1::NetworkUtilization::internal_default_instance();
  }
  ::google::appengine::v1::NetworkUtilization* AutomaticScaling::mutable_network_utilization() {
    
    if (network_utilization_ == NULL) {
      network_utilization_ = new ::google::appengine::v1::NetworkUtilization;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.AutomaticScaling.network_utilization)
    return network_utilization_;
  }
  ::google::appengine::v1::NetworkUtilization* AutomaticScaling::release_network_utilization() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.AutomaticScaling.network_utilization)
    
    ::google::appengine::v1::NetworkUtilization* temp = network_utilization_;
    network_utilization_ = NULL;
    return temp;
  }
  void AutomaticScaling::set_allocated_network_utilization(::google::appengine::v1::NetworkUtilization* network_utilization) {
    delete network_utilization_;
    network_utilization_ = network_utilization;
    if (network_utilization) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.AutomaticScaling.network_utilization)
  }
  
  inline const AutomaticScaling* AutomaticScaling::internal_default_instance() {
    return &AutomaticScaling_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int BasicScaling::kIdleTimeoutFieldNumber;
  const int BasicScaling::kMaxInstancesFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  BasicScaling::BasicScaling()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.BasicScaling)
  }
  
  void BasicScaling::InitAsDefaultInstance() {
    idle_timeout_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
  }
  
  BasicScaling::BasicScaling(const BasicScaling& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.BasicScaling)
  }
  
  void BasicScaling::SharedCtor() {
    idle_timeout_ = NULL;
    max_instances_ = 0;
    _cached_size_ = 0;
  }
  
  BasicScaling::~BasicScaling() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.BasicScaling)
    SharedDtor();
  }
  
  void BasicScaling::SharedDtor() {
    if (this != &BasicScaling_default_instance_.get()) {
      delete idle_timeout_;
    }
  }
  
  void BasicScaling::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* BasicScaling::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return BasicScaling_descriptor_;
  }
  
  const BasicScaling& BasicScaling::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<BasicScaling> BasicScaling_default_instance_;
  
  BasicScaling* BasicScaling::New(::google::protobuf::Arena* arena) const {
    BasicScaling* n = new BasicScaling;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void BasicScaling::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.BasicScaling)
    if (GetArenaNoVirtual() == NULL && idle_timeout_ != NULL) delete idle_timeout_;
    idle_timeout_ = NULL;
    max_instances_ = 0;
  }
  
  bool BasicScaling::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.BasicScaling)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional .google.protobuf.Duration idle_timeout = 1;
        case 1: {
          if (tag == 10) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_idle_timeout()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(16)) goto parse_max_instances;
          break;
        }
  
        // optional int32 max_instances = 2;
        case 2: {
          if (tag == 16) {
           parse_max_instances:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &max_instances_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.BasicScaling)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.BasicScaling)
    return false;
  #undef DO_
  }
  
  void BasicScaling::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.BasicScaling)
    // optional .google.protobuf.Duration idle_timeout = 1;
    if (this->has_idle_timeout()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, *this->idle_timeout_, output);
    }
  
    // optional int32 max_instances = 2;
    if (this->max_instances() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->max_instances(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.BasicScaling)
  }
  
  ::google::protobuf::uint8* BasicScaling::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.BasicScaling)
    // optional .google.protobuf.Duration idle_timeout = 1;
    if (this->has_idle_timeout()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          1, *this->idle_timeout_, false, target);
    }
  
    // optional int32 max_instances = 2;
    if (this->max_instances() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->max_instances(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.BasicScaling)
    return target;
  }
  
  size_t BasicScaling::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.BasicScaling)
    size_t total_size = 0;
  
    // optional .google.protobuf.Duration idle_timeout = 1;
    if (this->has_idle_timeout()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->idle_timeout_);
    }
  
    // optional int32 max_instances = 2;
    if (this->max_instances() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->max_instances());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void BasicScaling::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.BasicScaling)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const BasicScaling* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const BasicScaling>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.BasicScaling)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.BasicScaling)
      UnsafeMergeFrom(*source);
    }
  }
  
  void BasicScaling::MergeFrom(const BasicScaling& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.BasicScaling)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void BasicScaling::UnsafeMergeFrom(const BasicScaling& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.has_idle_timeout()) {
      mutable_idle_timeout()->::google::protobuf::Duration::MergeFrom(from.idle_timeout());
    }
    if (from.max_instances() != 0) {
      set_max_instances(from.max_instances());
    }
  }
  
  void BasicScaling::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.BasicScaling)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void BasicScaling::CopyFrom(const BasicScaling& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.BasicScaling)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool BasicScaling::IsInitialized() const {
  
    return true;
  }
  
  void BasicScaling::Swap(BasicScaling* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void BasicScaling::InternalSwap(BasicScaling* other) {
    std::swap(idle_timeout_, other->idle_timeout_);
    std::swap(max_instances_, other->max_instances_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata BasicScaling::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = BasicScaling_descriptor_;
    metadata.reflection = BasicScaling_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // BasicScaling
  
  // optional .google.protobuf.Duration idle_timeout = 1;
  bool BasicScaling::has_idle_timeout() const {
    return this != internal_default_instance() && idle_timeout_ != NULL;
  }
  void BasicScaling::clear_idle_timeout() {
    if (GetArenaNoVirtual() == NULL && idle_timeout_ != NULL) delete idle_timeout_;
    idle_timeout_ = NULL;
  }
  const ::google::protobuf::Duration& BasicScaling::idle_timeout() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.BasicScaling.idle_timeout)
    return idle_timeout_ != NULL ? *idle_timeout_
                           : *::google::protobuf::Duration::internal_default_instance();
  }
  ::google::protobuf::Duration* BasicScaling::mutable_idle_timeout() {
    
    if (idle_timeout_ == NULL) {
      idle_timeout_ = new ::google::protobuf::Duration;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.BasicScaling.idle_timeout)
    return idle_timeout_;
  }
  ::google::protobuf::Duration* BasicScaling::release_idle_timeout() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.BasicScaling.idle_timeout)
    
    ::google::protobuf::Duration* temp = idle_timeout_;
    idle_timeout_ = NULL;
    return temp;
  }
  void BasicScaling::set_allocated_idle_timeout(::google::protobuf::Duration* idle_timeout) {
    delete idle_timeout_;
    if (idle_timeout != NULL && idle_timeout->GetArena() != NULL) {
      ::google::protobuf::Duration* new_idle_timeout = new ::google::protobuf::Duration;
      new_idle_timeout->CopyFrom(*idle_timeout);
      idle_timeout = new_idle_timeout;
    }
    idle_timeout_ = idle_timeout;
    if (idle_timeout) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.BasicScaling.idle_timeout)
  }
  
  // optional int32 max_instances = 2;
  void BasicScaling::clear_max_instances() {
    max_instances_ = 0;
  }
  ::google::protobuf::int32 BasicScaling::max_instances() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.BasicScaling.max_instances)
    return max_instances_;
  }
  void BasicScaling::set_max_instances(::google::protobuf::int32 value) {
    
    max_instances_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.BasicScaling.max_instances)
  }
  
  inline const BasicScaling* BasicScaling::internal_default_instance() {
    return &BasicScaling_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int ManualScaling::kInstancesFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  ManualScaling::ManualScaling()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.ManualScaling)
  }
  
  void ManualScaling::InitAsDefaultInstance() {
  }
  
  ManualScaling::ManualScaling(const ManualScaling& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.ManualScaling)
  }
  
  void ManualScaling::SharedCtor() {
    instances_ = 0;
    _cached_size_ = 0;
  }
  
  ManualScaling::~ManualScaling() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.ManualScaling)
    SharedDtor();
  }
  
  void ManualScaling::SharedDtor() {
  }
  
  void ManualScaling::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* ManualScaling::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return ManualScaling_descriptor_;
  }
  
  const ManualScaling& ManualScaling::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<ManualScaling> ManualScaling_default_instance_;
  
  ManualScaling* ManualScaling::New(::google::protobuf::Arena* arena) const {
    ManualScaling* n = new ManualScaling;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void ManualScaling::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.ManualScaling)
    instances_ = 0;
  }
  
  bool ManualScaling::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.ManualScaling)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional int32 instances = 1;
        case 1: {
          if (tag == 8) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &instances_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.ManualScaling)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.ManualScaling)
    return false;
  #undef DO_
  }
  
  void ManualScaling::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.ManualScaling)
    // optional int32 instances = 1;
    if (this->instances() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->instances(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.ManualScaling)
  }
  
  ::google::protobuf::uint8* ManualScaling::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.ManualScaling)
    // optional int32 instances = 1;
    if (this->instances() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->instances(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.ManualScaling)
    return target;
  }
  
  size_t ManualScaling::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.ManualScaling)
    size_t total_size = 0;
  
    // optional int32 instances = 1;
    if (this->instances() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->instances());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void ManualScaling::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.ManualScaling)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const ManualScaling* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const ManualScaling>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.ManualScaling)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.ManualScaling)
      UnsafeMergeFrom(*source);
    }
  }
  
  void ManualScaling::MergeFrom(const ManualScaling& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.ManualScaling)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void ManualScaling::UnsafeMergeFrom(const ManualScaling& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.instances() != 0) {
      set_instances(from.instances());
    }
  }
  
  void ManualScaling::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.ManualScaling)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void ManualScaling::CopyFrom(const ManualScaling& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.ManualScaling)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool ManualScaling::IsInitialized() const {
  
    return true;
  }
  
  void ManualScaling::Swap(ManualScaling* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void ManualScaling::InternalSwap(ManualScaling* other) {
    std::swap(instances_, other->instances_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata ManualScaling::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = ManualScaling_descriptor_;
    metadata.reflection = ManualScaling_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // ManualScaling
  
  // optional int32 instances = 1;
  void ManualScaling::clear_instances() {
    instances_ = 0;
  }
  ::google::protobuf::int32 ManualScaling::instances() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.ManualScaling.instances)
    return instances_;
  }
  void ManualScaling::set_instances(::google::protobuf::int32 value) {
    
    instances_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.ManualScaling.instances)
  }
  
  inline const ManualScaling* ManualScaling::internal_default_instance() {
    return &ManualScaling_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int CpuUtilization::kAggregationWindowLengthFieldNumber;
  const int CpuUtilization::kTargetUtilizationFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  CpuUtilization::CpuUtilization()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.CpuUtilization)
  }
  
  void CpuUtilization::InitAsDefaultInstance() {
    aggregation_window_length_ = const_cast< ::google::protobuf::Duration*>(
        ::google::protobuf::Duration::internal_default_instance());
  }
  
  CpuUtilization::CpuUtilization(const CpuUtilization& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.CpuUtilization)
  }
  
  void CpuUtilization::SharedCtor() {
    aggregation_window_length_ = NULL;
    target_utilization_ = 0;
    _cached_size_ = 0;
  }
  
  CpuUtilization::~CpuUtilization() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.CpuUtilization)
    SharedDtor();
  }
  
  void CpuUtilization::SharedDtor() {
    if (this != &CpuUtilization_default_instance_.get()) {
      delete aggregation_window_length_;
    }
  }
  
  void CpuUtilization::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* CpuUtilization::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return CpuUtilization_descriptor_;
  }
  
  const CpuUtilization& CpuUtilization::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<CpuUtilization> CpuUtilization_default_instance_;
  
  CpuUtilization* CpuUtilization::New(::google::protobuf::Arena* arena) const {
    CpuUtilization* n = new CpuUtilization;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void CpuUtilization::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.CpuUtilization)
    if (GetArenaNoVirtual() == NULL && aggregation_window_length_ != NULL) delete aggregation_window_length_;
    aggregation_window_length_ = NULL;
    target_utilization_ = 0;
  }
  
  bool CpuUtilization::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.CpuUtilization)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional .google.protobuf.Duration aggregation_window_length = 1;
        case 1: {
          if (tag == 10) {
            DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
                 input, mutable_aggregation_window_length()));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(17)) goto parse_target_utilization;
          break;
        }
  
        // optional double target_utilization = 2;
        case 2: {
          if (tag == 17) {
           parse_target_utilization:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                   input, &target_utilization_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.CpuUtilization)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.CpuUtilization)
    return false;
  #undef DO_
  }
  
  void CpuUtilization::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.CpuUtilization)
    // optional .google.protobuf.Duration aggregation_window_length = 1;
    if (this->has_aggregation_window_length()) {
      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
        1, *this->aggregation_window_length_, output);
    }
  
    // optional double target_utilization = 2;
    if (this->target_utilization() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->target_utilization(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.CpuUtilization)
  }
  
  ::google::protobuf::uint8* CpuUtilization::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.CpuUtilization)
    // optional .google.protobuf.Duration aggregation_window_length = 1;
    if (this->has_aggregation_window_length()) {
      target = ::google::protobuf::internal::WireFormatLite::
        InternalWriteMessageNoVirtualToArray(
          1, *this->aggregation_window_length_, false, target);
    }
  
    // optional double target_utilization = 2;
    if (this->target_utilization() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->target_utilization(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.CpuUtilization)
    return target;
  }
  
  size_t CpuUtilization::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.CpuUtilization)
    size_t total_size = 0;
  
    // optional .google.protobuf.Duration aggregation_window_length = 1;
    if (this->has_aggregation_window_length()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->aggregation_window_length_);
    }
  
    // optional double target_utilization = 2;
    if (this->target_utilization() != 0) {
      total_size += 1 + 8;
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void CpuUtilization::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.CpuUtilization)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const CpuUtilization* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const CpuUtilization>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.CpuUtilization)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.CpuUtilization)
      UnsafeMergeFrom(*source);
    }
  }
  
  void CpuUtilization::MergeFrom(const CpuUtilization& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.CpuUtilization)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void CpuUtilization::UnsafeMergeFrom(const CpuUtilization& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.has_aggregation_window_length()) {
      mutable_aggregation_window_length()->::google::protobuf::Duration::MergeFrom(from.aggregation_window_length());
    }
    if (from.target_utilization() != 0) {
      set_target_utilization(from.target_utilization());
    }
  }
  
  void CpuUtilization::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.CpuUtilization)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void CpuUtilization::CopyFrom(const CpuUtilization& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.CpuUtilization)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool CpuUtilization::IsInitialized() const {
  
    return true;
  }
  
  void CpuUtilization::Swap(CpuUtilization* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void CpuUtilization::InternalSwap(CpuUtilization* other) {
    std::swap(aggregation_window_length_, other->aggregation_window_length_);
    std::swap(target_utilization_, other->target_utilization_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata CpuUtilization::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = CpuUtilization_descriptor_;
    metadata.reflection = CpuUtilization_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // CpuUtilization
  
  // optional .google.protobuf.Duration aggregation_window_length = 1;
  bool CpuUtilization::has_aggregation_window_length() const {
    return this != internal_default_instance() && aggregation_window_length_ != NULL;
  }
  void CpuUtilization::clear_aggregation_window_length() {
    if (GetArenaNoVirtual() == NULL && aggregation_window_length_ != NULL) delete aggregation_window_length_;
    aggregation_window_length_ = NULL;
  }
  const ::google::protobuf::Duration& CpuUtilization::aggregation_window_length() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.CpuUtilization.aggregation_window_length)
    return aggregation_window_length_ != NULL ? *aggregation_window_length_
                           : *::google::protobuf::Duration::internal_default_instance();
  }
  ::google::protobuf::Duration* CpuUtilization::mutable_aggregation_window_length() {
    
    if (aggregation_window_length_ == NULL) {
      aggregation_window_length_ = new ::google::protobuf::Duration;
    }
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.CpuUtilization.aggregation_window_length)
    return aggregation_window_length_;
  }
  ::google::protobuf::Duration* CpuUtilization::release_aggregation_window_length() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.CpuUtilization.aggregation_window_length)
    
    ::google::protobuf::Duration* temp = aggregation_window_length_;
    aggregation_window_length_ = NULL;
    return temp;
  }
  void CpuUtilization::set_allocated_aggregation_window_length(::google::protobuf::Duration* aggregation_window_length) {
    delete aggregation_window_length_;
    if (aggregation_window_length != NULL && aggregation_window_length->GetArena() != NULL) {
      ::google::protobuf::Duration* new_aggregation_window_length = new ::google::protobuf::Duration;
      new_aggregation_window_length->CopyFrom(*aggregation_window_length);
      aggregation_window_length = new_aggregation_window_length;
    }
    aggregation_window_length_ = aggregation_window_length;
    if (aggregation_window_length) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.CpuUtilization.aggregation_window_length)
  }
  
  // optional double target_utilization = 2;
  void CpuUtilization::clear_target_utilization() {
    target_utilization_ = 0;
  }
  double CpuUtilization::target_utilization() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.CpuUtilization.target_utilization)
    return target_utilization_;
  }
  void CpuUtilization::set_target_utilization(double value) {
    
    target_utilization_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.CpuUtilization.target_utilization)
  }
  
  inline const CpuUtilization* CpuUtilization::internal_default_instance() {
    return &CpuUtilization_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int RequestUtilization::kTargetRequestCountPerSecondFieldNumber;
  const int RequestUtilization::kTargetConcurrentRequestsFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  RequestUtilization::RequestUtilization()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.RequestUtilization)
  }
  
  void RequestUtilization::InitAsDefaultInstance() {
  }
  
  RequestUtilization::RequestUtilization(const RequestUtilization& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.RequestUtilization)
  }
  
  void RequestUtilization::SharedCtor() {
    ::memset(&target_request_count_per_second_, 0, reinterpret_cast<char*>(&target_concurrent_requests_) -
      reinterpret_cast<char*>(&target_request_count_per_second_) + sizeof(target_concurrent_requests_));
    _cached_size_ = 0;
  }
  
  RequestUtilization::~RequestUtilization() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.RequestUtilization)
    SharedDtor();
  }
  
  void RequestUtilization::SharedDtor() {
  }
  
  void RequestUtilization::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* RequestUtilization::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return RequestUtilization_descriptor_;
  }
  
  const RequestUtilization& RequestUtilization::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<RequestUtilization> RequestUtilization_default_instance_;
  
  RequestUtilization* RequestUtilization::New(::google::protobuf::Arena* arena) const {
    RequestUtilization* n = new RequestUtilization;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void RequestUtilization::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.RequestUtilization)
  #if defined(__clang__)
  #define ZR_HELPER_(f) \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \
    __builtin_offsetof(RequestUtilization, f) \
    _Pragma("clang diagnostic pop")
  #else
  #define ZR_HELPER_(f) reinterpret_cast<char*>(\
    &reinterpret_cast<RequestUtilization*>(16)->f)
  #endif
  
  #define ZR_(first, last) do {\
    ::memset(&(first), 0,\
             ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
  } while (0)
  
    ZR_(target_request_count_per_second_, target_concurrent_requests_);
  
  #undef ZR_HELPER_
  #undef ZR_
  
  }
  
  bool RequestUtilization::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.RequestUtilization)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional int32 target_request_count_per_second = 1;
        case 1: {
          if (tag == 8) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_request_count_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(16)) goto parse_target_concurrent_requests;
          break;
        }
  
        // optional int32 target_concurrent_requests = 2;
        case 2: {
          if (tag == 16) {
           parse_target_concurrent_requests:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_concurrent_requests_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.RequestUtilization)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.RequestUtilization)
    return false;
  #undef DO_
  }
  
  void RequestUtilization::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.RequestUtilization)
    // optional int32 target_request_count_per_second = 1;
    if (this->target_request_count_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->target_request_count_per_second(), output);
    }
  
    // optional int32 target_concurrent_requests = 2;
    if (this->target_concurrent_requests() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->target_concurrent_requests(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.RequestUtilization)
  }
  
  ::google::protobuf::uint8* RequestUtilization::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.RequestUtilization)
    // optional int32 target_request_count_per_second = 1;
    if (this->target_request_count_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->target_request_count_per_second(), target);
    }
  
    // optional int32 target_concurrent_requests = 2;
    if (this->target_concurrent_requests() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->target_concurrent_requests(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.RequestUtilization)
    return target;
  }
  
  size_t RequestUtilization::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.RequestUtilization)
    size_t total_size = 0;
  
    // optional int32 target_request_count_per_second = 1;
    if (this->target_request_count_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_request_count_per_second());
    }
  
    // optional int32 target_concurrent_requests = 2;
    if (this->target_concurrent_requests() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_concurrent_requests());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void RequestUtilization::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.RequestUtilization)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const RequestUtilization* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const RequestUtilization>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.RequestUtilization)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.RequestUtilization)
      UnsafeMergeFrom(*source);
    }
  }
  
  void RequestUtilization::MergeFrom(const RequestUtilization& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.RequestUtilization)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void RequestUtilization::UnsafeMergeFrom(const RequestUtilization& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.target_request_count_per_second() != 0) {
      set_target_request_count_per_second(from.target_request_count_per_second());
    }
    if (from.target_concurrent_requests() != 0) {
      set_target_concurrent_requests(from.target_concurrent_requests());
    }
  }
  
  void RequestUtilization::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.RequestUtilization)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void RequestUtilization::CopyFrom(const RequestUtilization& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.RequestUtilization)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool RequestUtilization::IsInitialized() const {
  
    return true;
  }
  
  void RequestUtilization::Swap(RequestUtilization* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void RequestUtilization::InternalSwap(RequestUtilization* other) {
    std::swap(target_request_count_per_second_, other->target_request_count_per_second_);
    std::swap(target_concurrent_requests_, other->target_concurrent_requests_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata RequestUtilization::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = RequestUtilization_descriptor_;
    metadata.reflection = RequestUtilization_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // RequestUtilization
  
  // optional int32 target_request_count_per_second = 1;
  void RequestUtilization::clear_target_request_count_per_second() {
    target_request_count_per_second_ = 0;
  }
  ::google::protobuf::int32 RequestUtilization::target_request_count_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.RequestUtilization.target_request_count_per_second)
    return target_request_count_per_second_;
  }
  void RequestUtilization::set_target_request_count_per_second(::google::protobuf::int32 value) {
    
    target_request_count_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.RequestUtilization.target_request_count_per_second)
  }
  
  // optional int32 target_concurrent_requests = 2;
  void RequestUtilization::clear_target_concurrent_requests() {
    target_concurrent_requests_ = 0;
  }
  ::google::protobuf::int32 RequestUtilization::target_concurrent_requests() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.RequestUtilization.target_concurrent_requests)
    return target_concurrent_requests_;
  }
  void RequestUtilization::set_target_concurrent_requests(::google::protobuf::int32 value) {
    
    target_concurrent_requests_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.RequestUtilization.target_concurrent_requests)
  }
  
  inline const RequestUtilization* RequestUtilization::internal_default_instance() {
    return &RequestUtilization_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int DiskUtilization::kTargetWriteBytesPerSecondFieldNumber;
  const int DiskUtilization::kTargetWriteOpsPerSecondFieldNumber;
  const int DiskUtilization::kTargetReadBytesPerSecondFieldNumber;
  const int DiskUtilization::kTargetReadOpsPerSecondFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  DiskUtilization::DiskUtilization()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.DiskUtilization)
  }
  
  void DiskUtilization::InitAsDefaultInstance() {
  }
  
  DiskUtilization::DiskUtilization(const DiskUtilization& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.DiskUtilization)
  }
  
  void DiskUtilization::SharedCtor() {
    ::memset(&target_write_bytes_per_second_, 0, reinterpret_cast<char*>(&target_read_ops_per_second_) -
      reinterpret_cast<char*>(&target_write_bytes_per_second_) + sizeof(target_read_ops_per_second_));
    _cached_size_ = 0;
  }
  
  DiskUtilization::~DiskUtilization() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.DiskUtilization)
    SharedDtor();
  }
  
  void DiskUtilization::SharedDtor() {
  }
  
  void DiskUtilization::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* DiskUtilization::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return DiskUtilization_descriptor_;
  }
  
  const DiskUtilization& DiskUtilization::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<DiskUtilization> DiskUtilization_default_instance_;
  
  DiskUtilization* DiskUtilization::New(::google::protobuf::Arena* arena) const {
    DiskUtilization* n = new DiskUtilization;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void DiskUtilization::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.DiskUtilization)
  #if defined(__clang__)
  #define ZR_HELPER_(f) \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \
    __builtin_offsetof(DiskUtilization, f) \
    _Pragma("clang diagnostic pop")
  #else
  #define ZR_HELPER_(f) reinterpret_cast<char*>(\
    &reinterpret_cast<DiskUtilization*>(16)->f)
  #endif
  
  #define ZR_(first, last) do {\
    ::memset(&(first), 0,\
             ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
  } while (0)
  
    ZR_(target_write_bytes_per_second_, target_read_ops_per_second_);
  
  #undef ZR_HELPER_
  #undef ZR_
  
  }
  
  bool DiskUtilization::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.DiskUtilization)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(16383);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional int32 target_write_bytes_per_second = 14;
        case 14: {
          if (tag == 112) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_write_bytes_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(120)) goto parse_target_write_ops_per_second;
          break;
        }
  
        // optional int32 target_write_ops_per_second = 15;
        case 15: {
          if (tag == 120) {
           parse_target_write_ops_per_second:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_write_ops_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(128)) goto parse_target_read_bytes_per_second;
          break;
        }
  
        // optional int32 target_read_bytes_per_second = 16;
        case 16: {
          if (tag == 128) {
           parse_target_read_bytes_per_second:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_read_bytes_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(136)) goto parse_target_read_ops_per_second;
          break;
        }
  
        // optional int32 target_read_ops_per_second = 17;
        case 17: {
          if (tag == 136) {
           parse_target_read_ops_per_second:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_read_ops_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.DiskUtilization)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.DiskUtilization)
    return false;
  #undef DO_
  }
  
  void DiskUtilization::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.DiskUtilization)
    // optional int32 target_write_bytes_per_second = 14;
    if (this->target_write_bytes_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(14, this->target_write_bytes_per_second(), output);
    }
  
    // optional int32 target_write_ops_per_second = 15;
    if (this->target_write_ops_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(15, this->target_write_ops_per_second(), output);
    }
  
    // optional int32 target_read_bytes_per_second = 16;
    if (this->target_read_bytes_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(16, this->target_read_bytes_per_second(), output);
    }
  
    // optional int32 target_read_ops_per_second = 17;
    if (this->target_read_ops_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(17, this->target_read_ops_per_second(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.DiskUtilization)
  }
  
  ::google::protobuf::uint8* DiskUtilization::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.DiskUtilization)
    // optional int32 target_write_bytes_per_second = 14;
    if (this->target_write_bytes_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(14, this->target_write_bytes_per_second(), target);
    }
  
    // optional int32 target_write_ops_per_second = 15;
    if (this->target_write_ops_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(15, this->target_write_ops_per_second(), target);
    }
  
    // optional int32 target_read_bytes_per_second = 16;
    if (this->target_read_bytes_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(16, this->target_read_bytes_per_second(), target);
    }
  
    // optional int32 target_read_ops_per_second = 17;
    if (this->target_read_ops_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(17, this->target_read_ops_per_second(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.DiskUtilization)
    return target;
  }
  
  size_t DiskUtilization::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.DiskUtilization)
    size_t total_size = 0;
  
    // optional int32 target_write_bytes_per_second = 14;
    if (this->target_write_bytes_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_write_bytes_per_second());
    }
  
    // optional int32 target_write_ops_per_second = 15;
    if (this->target_write_ops_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_write_ops_per_second());
    }
  
    // optional int32 target_read_bytes_per_second = 16;
    if (this->target_read_bytes_per_second() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_read_bytes_per_second());
    }
  
    // optional int32 target_read_ops_per_second = 17;
    if (this->target_read_ops_per_second() != 0) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_read_ops_per_second());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void DiskUtilization::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.DiskUtilization)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const DiskUtilization* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const DiskUtilization>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.DiskUtilization)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.DiskUtilization)
      UnsafeMergeFrom(*source);
    }
  }
  
  void DiskUtilization::MergeFrom(const DiskUtilization& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.DiskUtilization)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void DiskUtilization::UnsafeMergeFrom(const DiskUtilization& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.target_write_bytes_per_second() != 0) {
      set_target_write_bytes_per_second(from.target_write_bytes_per_second());
    }
    if (from.target_write_ops_per_second() != 0) {
      set_target_write_ops_per_second(from.target_write_ops_per_second());
    }
    if (from.target_read_bytes_per_second() != 0) {
      set_target_read_bytes_per_second(from.target_read_bytes_per_second());
    }
    if (from.target_read_ops_per_second() != 0) {
      set_target_read_ops_per_second(from.target_read_ops_per_second());
    }
  }
  
  void DiskUtilization::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.DiskUtilization)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void DiskUtilization::CopyFrom(const DiskUtilization& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.DiskUtilization)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool DiskUtilization::IsInitialized() const {
  
    return true;
  }
  
  void DiskUtilization::Swap(DiskUtilization* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void DiskUtilization::InternalSwap(DiskUtilization* other) {
    std::swap(target_write_bytes_per_second_, other->target_write_bytes_per_second_);
    std::swap(target_write_ops_per_second_, other->target_write_ops_per_second_);
    std::swap(target_read_bytes_per_second_, other->target_read_bytes_per_second_);
    std::swap(target_read_ops_per_second_, other->target_read_ops_per_second_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata DiskUtilization::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = DiskUtilization_descriptor_;
    metadata.reflection = DiskUtilization_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // DiskUtilization
  
  // optional int32 target_write_bytes_per_second = 14;
  void DiskUtilization::clear_target_write_bytes_per_second() {
    target_write_bytes_per_second_ = 0;
  }
  ::google::protobuf::int32 DiskUtilization::target_write_bytes_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.DiskUtilization.target_write_bytes_per_second)
    return target_write_bytes_per_second_;
  }
  void DiskUtilization::set_target_write_bytes_per_second(::google::protobuf::int32 value) {
    
    target_write_bytes_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.DiskUtilization.target_write_bytes_per_second)
  }
  
  // optional int32 target_write_ops_per_second = 15;
  void DiskUtilization::clear_target_write_ops_per_second() {
    target_write_ops_per_second_ = 0;
  }
  ::google::protobuf::int32 DiskUtilization::target_write_ops_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.DiskUtilization.target_write_ops_per_second)
    return target_write_ops_per_second_;
  }
  void DiskUtilization::set_target_write_ops_per_second(::google::protobuf::int32 value) {
    
    target_write_ops_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.DiskUtilization.target_write_ops_per_second)
  }
  
  // optional int32 target_read_bytes_per_second = 16;
  void DiskUtilization::clear_target_read_bytes_per_second() {
    target_read_bytes_per_second_ = 0;
  }
  ::google::protobuf::int32 DiskUtilization::target_read_bytes_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.DiskUtilization.target_read_bytes_per_second)
    return target_read_bytes_per_second_;
  }
  void DiskUtilization::set_target_read_bytes_per_second(::google::protobuf::int32 value) {
    
    target_read_bytes_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.DiskUtilization.target_read_bytes_per_second)
  }
  
  // optional int32 target_read_ops_per_second = 17;
  void DiskUtilization::clear_target_read_ops_per_second() {
    target_read_ops_per_second_ = 0;
  }
  ::google::protobuf::int32 DiskUtilization::target_read_ops_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.DiskUtilization.target_read_ops_per_second)
    return target_read_ops_per_second_;
  }
  void DiskUtilization::set_target_read_ops_per_second(::google::protobuf::int32 value) {
    
    target_read_ops_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.DiskUtilization.target_read_ops_per_second)
  }
  
  inline const DiskUtilization* DiskUtilization::internal_default_instance() {
    return &DiskUtilization_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int NetworkUtilization::kTargetSentBytesPerSecondFieldNumber;
  const int NetworkUtilization::kTargetSentPacketsPerSecondFieldNumber;
  const int NetworkUtilization::kTargetReceivedBytesPerSecondFieldNumber;
  const int NetworkUtilization::kTargetReceivedPacketsPerSecondFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  NetworkUtilization::NetworkUtilization()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.NetworkUtilization)
  }
  
  void NetworkUtilization::InitAsDefaultInstance() {
  }
  
  NetworkUtilization::NetworkUtilization(const NetworkUtilization& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.NetworkUtilization)
  }
  
  void NetworkUtilization::SharedCtor() {
    ::memset(&target_sent_bytes_per_second_, 0, reinterpret_cast<char*>(&target_received_packets_per_second_) -
      reinterpret_cast<char*>(&target_sent_bytes_per_second_) + sizeof(target_received_packets_per_second_));
    _cached_size_ = 0;
  }
  
  NetworkUtilization::~NetworkUtilization() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.NetworkUtilization)
    SharedDtor();
  }
  
  void NetworkUtilization::SharedDtor() {
  }
  
  void NetworkUtilization::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* NetworkUtilization::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return NetworkUtilization_descriptor_;
  }
  
  const NetworkUtilization& NetworkUtilization::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<NetworkUtilization> NetworkUtilization_default_instance_;
  
  NetworkUtilization* NetworkUtilization::New(::google::protobuf::Arena* arena) const {
    NetworkUtilization* n = new NetworkUtilization;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void NetworkUtilization::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.NetworkUtilization)
  #if defined(__clang__)
  #define ZR_HELPER_(f) \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \
    __builtin_offsetof(NetworkUtilization, f) \
    _Pragma("clang diagnostic pop")
  #else
  #define ZR_HELPER_(f) reinterpret_cast<char*>(\
    &reinterpret_cast<NetworkUtilization*>(16)->f)
  #endif
  
  #define ZR_(first, last) do {\
    ::memset(&(first), 0,\
             ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
  } while (0)
  
    ZR_(target_sent_bytes_per_second_, target_received_packets_per_second_);
  
  #undef ZR_HELPER_
  #undef ZR_
  
  }
  
  bool NetworkUtilization::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.NetworkUtilization)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional int32 target_sent_bytes_per_second = 1;
        case 1: {
          if (tag == 8) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_sent_bytes_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(88)) goto parse_target_sent_packets_per_second;
          break;
        }
  
        // optional int32 target_sent_packets_per_second = 11;
        case 11: {
          if (tag == 88) {
           parse_target_sent_packets_per_second:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_sent_packets_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(96)) goto parse_target_received_bytes_per_second;
          break;
        }
  
        // optional int32 target_received_bytes_per_second = 12;
        case 12: {
          if (tag == 96) {
           parse_target_received_bytes_per_second:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_received_bytes_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(104)) goto parse_target_received_packets_per_second;
          break;
        }
  
        // optional int32 target_received_packets_per_second = 13;
        case 13: {
          if (tag == 104) {
           parse_target_received_packets_per_second:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                   input, &target_received_packets_per_second_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.NetworkUtilization)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.NetworkUtilization)
    return false;
  #undef DO_
  }
  
  void NetworkUtilization::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.NetworkUtilization)
    // optional int32 target_sent_bytes_per_second = 1;
    if (this->target_sent_bytes_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->target_sent_bytes_per_second(), output);
    }
  
    // optional int32 target_sent_packets_per_second = 11;
    if (this->target_sent_packets_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(11, this->target_sent_packets_per_second(), output);
    }
  
    // optional int32 target_received_bytes_per_second = 12;
    if (this->target_received_bytes_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(12, this->target_received_bytes_per_second(), output);
    }
  
    // optional int32 target_received_packets_per_second = 13;
    if (this->target_received_packets_per_second() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteInt32(13, this->target_received_packets_per_second(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.NetworkUtilization)
  }
  
  ::google::protobuf::uint8* NetworkUtilization::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.NetworkUtilization)
    // optional int32 target_sent_bytes_per_second = 1;
    if (this->target_sent_bytes_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->target_sent_bytes_per_second(), target);
    }
  
    // optional int32 target_sent_packets_per_second = 11;
    if (this->target_sent_packets_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(11, this->target_sent_packets_per_second(), target);
    }
  
    // optional int32 target_received_bytes_per_second = 12;
    if (this->target_received_bytes_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(12, this->target_received_bytes_per_second(), target);
    }
  
    // optional int32 target_received_packets_per_second = 13;
    if (this->target_received_packets_per_second() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(13, this->target_received_packets_per_second(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.NetworkUtilization)
    return target;
  }
  
  size_t NetworkUtilization::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.NetworkUtilization)
    size_t total_size = 0;
  
    // optional int32 target_sent_bytes_per_second = 1;
    if (this->target_sent_bytes_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_sent_bytes_per_second());
    }
  
    // optional int32 target_sent_packets_per_second = 11;
    if (this->target_sent_packets_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_sent_packets_per_second());
    }
  
    // optional int32 target_received_bytes_per_second = 12;
    if (this->target_received_bytes_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_received_bytes_per_second());
    }
  
    // optional int32 target_received_packets_per_second = 13;
    if (this->target_received_packets_per_second() != 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->target_received_packets_per_second());
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void NetworkUtilization::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.NetworkUtilization)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const NetworkUtilization* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const NetworkUtilization>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.NetworkUtilization)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.NetworkUtilization)
      UnsafeMergeFrom(*source);
    }
  }
  
  void NetworkUtilization::MergeFrom(const NetworkUtilization& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.NetworkUtilization)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void NetworkUtilization::UnsafeMergeFrom(const NetworkUtilization& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.target_sent_bytes_per_second() != 0) {
      set_target_sent_bytes_per_second(from.target_sent_bytes_per_second());
    }
    if (from.target_sent_packets_per_second() != 0) {
      set_target_sent_packets_per_second(from.target_sent_packets_per_second());
    }
    if (from.target_received_bytes_per_second() != 0) {
      set_target_received_bytes_per_second(from.target_received_bytes_per_second());
    }
    if (from.target_received_packets_per_second() != 0) {
      set_target_received_packets_per_second(from.target_received_packets_per_second());
    }
  }
  
  void NetworkUtilization::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.NetworkUtilization)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void NetworkUtilization::CopyFrom(const NetworkUtilization& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.NetworkUtilization)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool NetworkUtilization::IsInitialized() const {
  
    return true;
  }
  
  void NetworkUtilization::Swap(NetworkUtilization* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void NetworkUtilization::InternalSwap(NetworkUtilization* other) {
    std::swap(target_sent_bytes_per_second_, other->target_sent_bytes_per_second_);
    std::swap(target_sent_packets_per_second_, other->target_sent_packets_per_second_);
    std::swap(target_received_bytes_per_second_, other->target_received_bytes_per_second_);
    std::swap(target_received_packets_per_second_, other->target_received_packets_per_second_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata NetworkUtilization::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = NetworkUtilization_descriptor_;
    metadata.reflection = NetworkUtilization_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // NetworkUtilization
  
  // optional int32 target_sent_bytes_per_second = 1;
  void NetworkUtilization::clear_target_sent_bytes_per_second() {
    target_sent_bytes_per_second_ = 0;
  }
  ::google::protobuf::int32 NetworkUtilization::target_sent_bytes_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.NetworkUtilization.target_sent_bytes_per_second)
    return target_sent_bytes_per_second_;
  }
  void NetworkUtilization::set_target_sent_bytes_per_second(::google::protobuf::int32 value) {
    
    target_sent_bytes_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.NetworkUtilization.target_sent_bytes_per_second)
  }
  
  // optional int32 target_sent_packets_per_second = 11;
  void NetworkUtilization::clear_target_sent_packets_per_second() {
    target_sent_packets_per_second_ = 0;
  }
  ::google::protobuf::int32 NetworkUtilization::target_sent_packets_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.NetworkUtilization.target_sent_packets_per_second)
    return target_sent_packets_per_second_;
  }
  void NetworkUtilization::set_target_sent_packets_per_second(::google::protobuf::int32 value) {
    
    target_sent_packets_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.NetworkUtilization.target_sent_packets_per_second)
  }
  
  // optional int32 target_received_bytes_per_second = 12;
  void NetworkUtilization::clear_target_received_bytes_per_second() {
    target_received_bytes_per_second_ = 0;
  }
  ::google::protobuf::int32 NetworkUtilization::target_received_bytes_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.NetworkUtilization.target_received_bytes_per_second)
    return target_received_bytes_per_second_;
  }
  void NetworkUtilization::set_target_received_bytes_per_second(::google::protobuf::int32 value) {
    
    target_received_bytes_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.NetworkUtilization.target_received_bytes_per_second)
  }
  
  // optional int32 target_received_packets_per_second = 13;
  void NetworkUtilization::clear_target_received_packets_per_second() {
    target_received_packets_per_second_ = 0;
  }
  ::google::protobuf::int32 NetworkUtilization::target_received_packets_per_second() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.NetworkUtilization.target_received_packets_per_second)
    return target_received_packets_per_second_;
  }
  void NetworkUtilization::set_target_received_packets_per_second(::google::protobuf::int32 value) {
    
    target_received_packets_per_second_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.NetworkUtilization.target_received_packets_per_second)
  }
  
  inline const NetworkUtilization* NetworkUtilization::internal_default_instance() {
    return &NetworkUtilization_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int Network::kForwardedPortsFieldNumber;
  const int Network::kInstanceTagFieldNumber;
  const int Network::kNameFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  Network::Network()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.Network)
  }
  
  void Network::InitAsDefaultInstance() {
  }
  
  Network::Network(const Network& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.Network)
  }
  
  void Network::SharedCtor() {
    instance_tag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    _cached_size_ = 0;
  }
  
  Network::~Network() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.Network)
    SharedDtor();
  }
  
  void Network::SharedDtor() {
    instance_tag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  
  void Network::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* Network::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return Network_descriptor_;
  }
  
  const Network& Network::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<Network> Network_default_instance_;
  
  Network* Network::New(::google::protobuf::Arena* arena) const {
    Network* n = new Network;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void Network::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.Network)
    instance_tag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    forwarded_ports_.Clear();
  }
  
  bool Network::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.Network)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // repeated string forwarded_ports = 1;
        case 1: {
          if (tag == 10) {
           parse_forwarded_ports:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->add_forwarded_ports()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->forwarded_ports(this->forwarded_ports_size() - 1).data(),
              this->forwarded_ports(this->forwarded_ports_size() - 1).length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Network.forwarded_ports"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(10)) goto parse_forwarded_ports;
          if (input->ExpectTag(18)) goto parse_instance_tag;
          break;
        }
  
        // optional string instance_tag = 2;
        case 2: {
          if (tag == 18) {
           parse_instance_tag:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_instance_tag()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->instance_tag().data(), this->instance_tag().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Network.instance_tag"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(26)) goto parse_name;
          break;
        }
  
        // optional string name = 3;
        case 3: {
          if (tag == 26) {
           parse_name:
            DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                  input, this->mutable_name()));
            DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
              this->name().data(), this->name().length(),
              ::google::protobuf::internal::WireFormatLite::PARSE,
              "google.appengine.v1.Network.name"));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.Network)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.Network)
    return false;
  #undef DO_
  }
  
  void Network::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.Network)
    // repeated string forwarded_ports = 1;
    for (int i = 0; i < this->forwarded_ports_size(); i++) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->forwarded_ports(i).data(), this->forwarded_ports(i).length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Network.forwarded_ports");
      ::google::protobuf::internal::WireFormatLite::WriteString(
        1, this->forwarded_ports(i), output);
    }
  
    // optional string instance_tag = 2;
    if (this->instance_tag().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->instance_tag().data(), this->instance_tag().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Network.instance_tag");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->instance_tag(), output);
    }
  
    // optional string name = 3;
    if (this->name().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->name().data(), this->name().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Network.name");
      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
        3, this->name(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.Network)
  }
  
  ::google::protobuf::uint8* Network::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.Network)
    // repeated string forwarded_ports = 1;
    for (int i = 0; i < this->forwarded_ports_size(); i++) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->forwarded_ports(i).data(), this->forwarded_ports(i).length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Network.forwarded_ports");
      target = ::google::protobuf::internal::WireFormatLite::
        WriteStringToArray(1, this->forwarded_ports(i), target);
    }
  
    // optional string instance_tag = 2;
    if (this->instance_tag().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->instance_tag().data(), this->instance_tag().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Network.instance_tag");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          2, this->instance_tag(), target);
    }
  
    // optional string name = 3;
    if (this->name().size() > 0) {
      ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
        this->name().data(), this->name().length(),
        ::google::protobuf::internal::WireFormatLite::SERIALIZE,
        "google.appengine.v1.Network.name");
      target =
        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
          3, this->name(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.Network)
    return target;
  }
  
  size_t Network::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.Network)
    size_t total_size = 0;
  
    // optional string instance_tag = 2;
    if (this->instance_tag().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->instance_tag());
    }
  
    // optional string name = 3;
    if (this->name().size() > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->name());
    }
  
    // repeated string forwarded_ports = 1;
    total_size += 1 *
        ::google::protobuf::internal::FromIntSize(this->forwarded_ports_size());
    for (int i = 0; i < this->forwarded_ports_size(); i++) {
      total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
        this->forwarded_ports(i));
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void Network::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.Network)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const Network* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const Network>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.Network)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.Network)
      UnsafeMergeFrom(*source);
    }
  }
  
  void Network::MergeFrom(const Network& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.Network)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void Network::UnsafeMergeFrom(const Network& from) {
    GOOGLE_DCHECK(&from != this);
    forwarded_ports_.UnsafeMergeFrom(from.forwarded_ports_);
    if (from.instance_tag().size() > 0) {
  
      instance_tag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.instance_tag_);
    }
    if (from.name().size() > 0) {
  
      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
    }
  }
  
  void Network::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.Network)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void Network::CopyFrom(const Network& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.Network)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool Network::IsInitialized() const {
  
    return true;
  }
  
  void Network::Swap(Network* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void Network::InternalSwap(Network* other) {
    forwarded_ports_.UnsafeArenaSwap(&other->forwarded_ports_);
    instance_tag_.Swap(&other->instance_tag_);
    name_.Swap(&other->name_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata Network::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = Network_descriptor_;
    metadata.reflection = Network_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // Network
  
  // repeated string forwarded_ports = 1;
  int Network::forwarded_ports_size() const {
    return forwarded_ports_.size();
  }
  void Network::clear_forwarded_ports() {
    forwarded_ports_.Clear();
  }
  const ::std::string& Network::forwarded_ports(int index) const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Network.forwarded_ports)
    return forwarded_ports_.Get(index);
  }
  ::std::string* Network::mutable_forwarded_ports(int index) {
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Network.forwarded_ports)
    return forwarded_ports_.Mutable(index);
  }
  void Network::set_forwarded_ports(int index, const ::std::string& value) {
    // @@protoc_insertion_point(field_set:google.appengine.v1.Network.forwarded_ports)
    forwarded_ports_.Mutable(index)->assign(value);
  }
  void Network::set_forwarded_ports(int index, const char* value) {
    forwarded_ports_.Mutable(index)->assign(value);
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Network.forwarded_ports)
  }
  void Network::set_forwarded_ports(int index, const char* value, size_t size) {
    forwarded_ports_.Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Network.forwarded_ports)
  }
  ::std::string* Network::add_forwarded_ports() {
    // @@protoc_insertion_point(field_add_mutable:google.appengine.v1.Network.forwarded_ports)
    return forwarded_ports_.Add();
  }
  void Network::add_forwarded_ports(const ::std::string& value) {
    forwarded_ports_.Add()->assign(value);
    // @@protoc_insertion_point(field_add:google.appengine.v1.Network.forwarded_ports)
  }
  void Network::add_forwarded_ports(const char* value) {
    forwarded_ports_.Add()->assign(value);
    // @@protoc_insertion_point(field_add_char:google.appengine.v1.Network.forwarded_ports)
  }
  void Network::add_forwarded_ports(const char* value, size_t size) {
    forwarded_ports_.Add()->assign(reinterpret_cast<const char*>(value), size);
    // @@protoc_insertion_point(field_add_pointer:google.appengine.v1.Network.forwarded_ports)
  }
  const ::google::protobuf::RepeatedPtrField< ::std::string>&
  Network::forwarded_ports() const {
    // @@protoc_insertion_point(field_list:google.appengine.v1.Network.forwarded_ports)
    return forwarded_ports_;
  }
  ::google::protobuf::RepeatedPtrField< ::std::string>*
  Network::mutable_forwarded_ports() {
    // @@protoc_insertion_point(field_mutable_list:google.appengine.v1.Network.forwarded_ports)
    return &forwarded_ports_;
  }
  
  // optional string instance_tag = 2;
  void Network::clear_instance_tag() {
    instance_tag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Network::instance_tag() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Network.instance_tag)
    return instance_tag_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Network::set_instance_tag(const ::std::string& value) {
    
    instance_tag_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Network.instance_tag)
  }
  void Network::set_instance_tag(const char* value) {
    
    instance_tag_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Network.instance_tag)
  }
  void Network::set_instance_tag(const char* value, size_t size) {
    
    instance_tag_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Network.instance_tag)
  }
  ::std::string* Network::mutable_instance_tag() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Network.instance_tag)
    return instance_tag_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Network::release_instance_tag() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Network.instance_tag)
    
    return instance_tag_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Network::set_allocated_instance_tag(::std::string* instance_tag) {
    if (instance_tag != NULL) {
      
    } else {
      
    }
    instance_tag_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), instance_tag);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Network.instance_tag)
  }
  
  // optional string name = 3;
  void Network::clear_name() {
    name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  const ::std::string& Network::name() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Network.name)
    return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Network::set_name(const ::std::string& value) {
    
    name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
    // @@protoc_insertion_point(field_set:google.appengine.v1.Network.name)
  }
  void Network::set_name(const char* value) {
    
    name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
    // @@protoc_insertion_point(field_set_char:google.appengine.v1.Network.name)
  }
  void Network::set_name(const char* value, size_t size) {
    
    name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
        ::std::string(reinterpret_cast<const char*>(value), size));
    // @@protoc_insertion_point(field_set_pointer:google.appengine.v1.Network.name)
  }
  ::std::string* Network::mutable_name() {
    
    // @@protoc_insertion_point(field_mutable:google.appengine.v1.Network.name)
    return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  ::std::string* Network::release_name() {
    // @@protoc_insertion_point(field_release:google.appengine.v1.Network.name)
    
    return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  void Network::set_allocated_name(::std::string* name) {
    if (name != NULL) {
      
    } else {
      
    }
    name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
    // @@protoc_insertion_point(field_set_allocated:google.appengine.v1.Network.name)
  }
  
  inline const Network* Network::internal_default_instance() {
    return &Network_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // ===================================================================
  
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int Resources::kCpuFieldNumber;
  const int Resources::kDiskGbFieldNumber;
  const int Resources::kMemoryGbFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  Resources::Resources()
    : ::google::protobuf::Message(), _internal_metadata_(NULL) {
    if (this != internal_default_instance()) protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    SharedCtor();
    // @@protoc_insertion_point(constructor:google.appengine.v1.Resources)
  }
  
  void Resources::InitAsDefaultInstance() {
  }
  
  Resources::Resources(const Resources& from)
    : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
    SharedCtor();
    UnsafeMergeFrom(from);
    // @@protoc_insertion_point(copy_constructor:google.appengine.v1.Resources)
  }
  
  void Resources::SharedCtor() {
    ::memset(&cpu_, 0, reinterpret_cast<char*>(&memory_gb_) -
      reinterpret_cast<char*>(&cpu_) + sizeof(memory_gb_));
    _cached_size_ = 0;
  }
  
  Resources::~Resources() {
    // @@protoc_insertion_point(destructor:google.appengine.v1.Resources)
    SharedDtor();
  }
  
  void Resources::SharedDtor() {
  }
  
  void Resources::SetCachedSize(int size) const {
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
  }
  const ::google::protobuf::Descriptor* Resources::descriptor() {
    protobuf_AssignDescriptorsOnce();
    return Resources_descriptor_;
  }
  
  const Resources& Resources::default_instance() {
    protobuf_InitDefaults_google_2fappengine_2fv1_2fversion_2eproto();
    return *internal_default_instance();
  }
  
  ::google::protobuf::internal::ExplicitlyConstructed<Resources> Resources_default_instance_;
  
  Resources* Resources::New(::google::protobuf::Arena* arena) const {
    Resources* n = new Resources;
    if (arena != NULL) {
      arena->Own(n);
    }
    return n;
  }
  
  void Resources::Clear() {
  // @@protoc_insertion_point(message_clear_start:google.appengine.v1.Resources)
  #if defined(__clang__)
  #define ZR_HELPER_(f) \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \
    __builtin_offsetof(Resources, f) \
    _Pragma("clang diagnostic pop")
  #else
  #define ZR_HELPER_(f) reinterpret_cast<char*>(\
    &reinterpret_cast<Resources*>(16)->f)
  #endif
  
  #define ZR_(first, last) do {\
    ::memset(&(first), 0,\
             ZR_HELPER_(last) - ZR_HELPER_(first) + sizeof(last));\
  } while (0)
  
    ZR_(cpu_, memory_gb_);
  
  #undef ZR_HELPER_
  #undef ZR_
  
  }
  
  bool Resources::MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
    ::google::protobuf::uint32 tag;
    // @@protoc_insertion_point(parse_start:google.appengine.v1.Resources)
    for (;;) {
      ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // optional double cpu = 1;
        case 1: {
          if (tag == 9) {
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                   input, &cpu_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(17)) goto parse_disk_gb;
          break;
        }
  
        // optional double disk_gb = 2;
        case 2: {
          if (tag == 17) {
           parse_disk_gb:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                   input, &disk_gb_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectTag(25)) goto parse_memory_gb;
          break;
        }
  
        // optional double memory_gb = 3;
        case 3: {
          if (tag == 25) {
           parse_memory_gb:
  
            DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                     double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                   input, &memory_gb_)));
          } else {
            goto handle_unusual;
          }
          if (input->ExpectAtEnd()) goto success;
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0 ||
              ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
              ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
            goto success;
          }
          DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:google.appengine.v1.Resources)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:google.appengine.v1.Resources)
    return false;
  #undef DO_
  }
  
  void Resources::SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:google.appengine.v1.Resources)
    // optional double cpu = 1;
    if (this->cpu() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->cpu(), output);
    }
  
    // optional double disk_gb = 2;
    if (this->disk_gb() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteDouble(2, this->disk_gb(), output);
    }
  
    // optional double memory_gb = 3;
    if (this->memory_gb() != 0) {
      ::google::protobuf::internal::WireFormatLite::WriteDouble(3, this->memory_gb(), output);
    }
  
    // @@protoc_insertion_point(serialize_end:google.appengine.v1.Resources)
  }
  
  ::google::protobuf::uint8* Resources::InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const {
    (void)deterministic; // Unused
    // @@protoc_insertion_point(serialize_to_array_start:google.appengine.v1.Resources)
    // optional double cpu = 1;
    if (this->cpu() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->cpu(), target);
    }
  
    // optional double disk_gb = 2;
    if (this->disk_gb() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(2, this->disk_gb(), target);
    }
  
    // optional double memory_gb = 3;
    if (this->memory_gb() != 0) {
      target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(3, this->memory_gb(), target);
    }
  
    // @@protoc_insertion_point(serialize_to_array_end:google.appengine.v1.Resources)
    return target;
  }
  
  size_t Resources::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:google.appengine.v1.Resources)
    size_t total_size = 0;
  
    // optional double cpu = 1;
    if (this->cpu() != 0) {
      total_size += 1 + 8;
    }
  
    // optional double disk_gb = 2;
    if (this->disk_gb() != 0) {
      total_size += 1 + 8;
    }
  
    // optional double memory_gb = 3;
    if (this->memory_gb() != 0) {
      total_size += 1 + 8;
    }
  
    int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _cached_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    return total_size;
  }
  
  void Resources::MergeFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:google.appengine.v1.Resources)
    if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
    const Resources* source =
        ::google::protobuf::internal::DynamicCastToGenerated<const Resources>(
            &from);
    if (source == NULL) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.appengine.v1.Resources)
      ::google::protobuf::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:google.appengine.v1.Resources)
      UnsafeMergeFrom(*source);
    }
  }
  
  void Resources::MergeFrom(const Resources& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:google.appengine.v1.Resources)
    if (GOOGLE_PREDICT_TRUE(&from != this)) {
      UnsafeMergeFrom(from);
    } else {
      MergeFromFail(__LINE__);
    }
  }
  
  void Resources::UnsafeMergeFrom(const Resources& from) {
    GOOGLE_DCHECK(&from != this);
    if (from.cpu() != 0) {
      set_cpu(from.cpu());
    }
    if (from.disk_gb() != 0) {
      set_disk_gb(from.disk_gb());
    }
    if (from.memory_gb() != 0) {
      set_memory_gb(from.memory_gb());
    }
  }
  
  void Resources::CopyFrom(const ::google::protobuf::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:google.appengine.v1.Resources)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void Resources::CopyFrom(const Resources& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:google.appengine.v1.Resources)
    if (&from == this) return;
    Clear();
    UnsafeMergeFrom(from);
  }
  
  bool Resources::IsInitialized() const {
  
    return true;
  }
  
  void Resources::Swap(Resources* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void Resources::InternalSwap(Resources* other) {
    std::swap(cpu_, other->cpu_);
    std::swap(disk_gb_, other->disk_gb_);
    std::swap(memory_gb_, other->memory_gb_);
    _internal_metadata_.Swap(&other->_internal_metadata_);
    std::swap(_cached_size_, other->_cached_size_);
  }
  
  ::google::protobuf::Metadata Resources::GetMetadata() const {
    protobuf_AssignDescriptorsOnce();
    ::google::protobuf::Metadata metadata;
    metadata.descriptor = Resources_descriptor_;
    metadata.reflection = Resources_reflection_;
    return metadata;
  }
  
  #if PROTOBUF_INLINE_NOT_IN_HEADERS
  // Resources
  
  // optional double cpu = 1;
  void Resources::clear_cpu() {
    cpu_ = 0;
  }
  double Resources::cpu() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Resources.cpu)
    return cpu_;
  }
  void Resources::set_cpu(double value) {
    
    cpu_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Resources.cpu)
  }
  
  // optional double disk_gb = 2;
  void Resources::clear_disk_gb() {
    disk_gb_ = 0;
  }
  double Resources::disk_gb() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Resources.disk_gb)
    return disk_gb_;
  }
  void Resources::set_disk_gb(double value) {
    
    disk_gb_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Resources.disk_gb)
  }
  
  // optional double memory_gb = 3;
  void Resources::clear_memory_gb() {
    memory_gb_ = 0;
  }
  double Resources::memory_gb() const {
    // @@protoc_insertion_point(field_get:google.appengine.v1.Resources.memory_gb)
    return memory_gb_;
  }
  void Resources::set_memory_gb(double value) {
    
    memory_gb_ = value;
    // @@protoc_insertion_point(field_set:google.appengine.v1.Resources.memory_gb)
  }
  
  inline const Resources* Resources::internal_default_instance() {
    return &Resources_default_instance_.get();
  }
  #endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
  
  // @@protoc_insertion_point(namespace_scope)
  
  }  // namespace v1
  }  // namespace appengine
  }  // namespace google
  
  // @@protoc_insertion_point(global_scope)
  