text:
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)