// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/storage/v1/storage_resources.proto

#include "google/storage/v1/storage_resources.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2ftimestamp_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_BoolValue_google_2fprotobuf_2fwrappers_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_UInt32Value_google_2fprotobuf_2fwrappers_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_LabelsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Channel_ParamsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Notification_CustomAttributesEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Object_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Object_MetadataEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<14> scc_info_Bucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Notification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Bucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Bucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fstorage_2fv1_2fstorage_5fresources_2eproto ::google::protobuf::internal::SCCInfo<7> scc_info_Object_google_2fstorage_2fv1_2fstorage_5fresources_2eproto;
namespace google {
namespace storage {
namespace v1 {
class Bucket_BillingDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Billing> _instance;
} _Bucket_Billing_default_instance_;
class Bucket_CorsDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Cors> _instance;
} _Bucket_Cors_default_instance_;
class Bucket_EncryptionDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Encryption> _instance;
} _Bucket_Encryption_default_instance_;
class Bucket_IamConfiguration_UniformBucketLevelAccessDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_IamConfiguration_UniformBucketLevelAccess> _instance;
} _Bucket_IamConfiguration_UniformBucketLevelAccess_default_instance_;
class Bucket_IamConfigurationDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_IamConfiguration> _instance;
} _Bucket_IamConfiguration_default_instance_;
class Bucket_Lifecycle_Rule_ActionDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Lifecycle_Rule_Action> _instance;
} _Bucket_Lifecycle_Rule_Action_default_instance_;
class Bucket_Lifecycle_Rule_ConditionDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Lifecycle_Rule_Condition> _instance;
} _Bucket_Lifecycle_Rule_Condition_default_instance_;
class Bucket_Lifecycle_RuleDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Lifecycle_Rule> _instance;
} _Bucket_Lifecycle_Rule_default_instance_;
class Bucket_LifecycleDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Lifecycle> _instance;
} _Bucket_Lifecycle_default_instance_;
class Bucket_LoggingDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Logging> _instance;
} _Bucket_Logging_default_instance_;
class Bucket_RetentionPolicyDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_RetentionPolicy> _instance;
} _Bucket_RetentionPolicy_default_instance_;
class Bucket_VersioningDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Versioning> _instance;
} _Bucket_Versioning_default_instance_;
class Bucket_WebsiteDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_Website> _instance;
} _Bucket_Website_default_instance_;
class Bucket_LabelsEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket_LabelsEntry_DoNotUse> _instance;
} _Bucket_LabelsEntry_DoNotUse_default_instance_;
class BucketDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Bucket> _instance;
} _Bucket_default_instance_;
class BucketAccessControlDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<BucketAccessControl> _instance;
} _BucketAccessControl_default_instance_;
class ListBucketAccessControlsResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListBucketAccessControlsResponse> _instance;
} _ListBucketAccessControlsResponse_default_instance_;
class ListBucketsResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListBucketsResponse> _instance;
} _ListBucketsResponse_default_instance_;
class Channel_ParamsEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Channel_ParamsEntry_DoNotUse> _instance;
} _Channel_ParamsEntry_DoNotUse_default_instance_;
class ChannelDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Channel> _instance;
} _Channel_default_instance_;
class ListChannelsResponse_ItemsDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListChannelsResponse_Items> _instance;
} _ListChannelsResponse_Items_default_instance_;
class ListChannelsResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListChannelsResponse> _instance;
} _ListChannelsResponse_default_instance_;
class ChecksummedDataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ChecksummedData> _instance;
} _ChecksummedData_default_instance_;
class ObjectChecksumsDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ObjectChecksums> _instance;
} _ObjectChecksums_default_instance_;
class CommonEnumsDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<CommonEnums> _instance;
} _CommonEnums_default_instance_;
class ContentRangeDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ContentRange> _instance;
} _ContentRange_default_instance_;
class HmacKeyMetadataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<HmacKeyMetadata> _instance;
} _HmacKeyMetadata_default_instance_;
class Notification_CustomAttributesEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Notification_CustomAttributesEntry_DoNotUse> _instance;
} _Notification_CustomAttributesEntry_DoNotUse_default_instance_;
class NotificationDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Notification> _instance;
} _Notification_default_instance_;
class ListNotificationsResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListNotificationsResponse> _instance;
} _ListNotificationsResponse_default_instance_;
class Object_CustomerEncryptionDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Object_CustomerEncryption> _instance;
} _Object_CustomerEncryption_default_instance_;
class Object_MetadataEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Object_MetadataEntry_DoNotUse> _instance;
} _Object_MetadataEntry_DoNotUse_default_instance_;
class ObjectDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Object> _instance;
} _Object_default_instance_;
class ObjectAccessControlDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ObjectAccessControl> _instance;
} _ObjectAccessControl_default_instance_;
class ListObjectAccessControlsResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListObjectAccessControlsResponse> _instance;
} _ListObjectAccessControlsResponse_default_instance_;
class ListObjectsResponseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListObjectsResponse> _instance;
} _ListObjectsResponse_default_instance_;
class ProjectTeamDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ProjectTeam> _instance;
} _ProjectTeam_default_instance_;
class ServiceAccountDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ServiceAccount> _instance;
} _ServiceAccount_default_instance_;
class OwnerDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Owner> _instance;
} _Owner_default_instance_;
}  // namespace v1
}  // namespace storage
}  // namespace google
static void InitDefaultsBucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Billing_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Billing();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Billing::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Cors_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Cors();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Cors::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Encryption_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Encryption();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Encryption::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_IamConfiguration_UniformBucketLevelAccess_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}};

static void InitDefaultsBucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_IamConfiguration_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_IamConfiguration();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_IamConfiguration::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Bucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsBucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Lifecycle_Rule_Action_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Lifecycle_Rule_Action();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Lifecycle_Rule_Action::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Lifecycle_Rule_Condition_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Lifecycle_Rule_Condition();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Lifecycle_Rule_Condition::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_Bucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsBucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
      &scc_info_BoolValue_google_2fprotobuf_2fwrappers_2eproto.base,}};

static void InitDefaultsBucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Lifecycle_Rule_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Lifecycle_Rule();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Lifecycle_Rule::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_Bucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsBucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Bucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsBucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Lifecycle_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Lifecycle();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Lifecycle::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Bucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsBucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Logging_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Logging();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Logging::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_RetentionPolicy_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_RetentionPolicy();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_RetentionPolicy::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Bucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}};

static void InitDefaultsBucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Versioning_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Versioning();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Versioning::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_Website_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_Website();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket_Website::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_LabelsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_LabelsEntry_DoNotUse_default_instance_;
    new (ptr) ::google::storage::v1::Bucket_LabelsEntry_DoNotUse();
  }
  ::google::storage::v1::Bucket_LabelsEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Bucket_LabelsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsBucket_LabelsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsBucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Bucket_default_instance_;
    new (ptr) ::google::storage::v1::Bucket();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Bucket::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<14> scc_info_Bucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 14, InitDefaultsBucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
      &scc_info_Bucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_LabelsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Bucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsBucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_BucketAccessControl_default_instance_;
    new (ptr) ::google::storage::v1::BucketAccessControl();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::BucketAccessControl::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsBucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsListBucketAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListBucketAccessControlsResponse_default_instance_;
    new (ptr) ::google::storage::v1::ListBucketAccessControlsResponse();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListBucketAccessControlsResponse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListBucketAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListBucketAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsListBucketsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListBucketsResponse_default_instance_;
    new (ptr) ::google::storage::v1::ListBucketsResponse();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListBucketsResponse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListBucketsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListBucketsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Bucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsChannel_ParamsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Channel_ParamsEntry_DoNotUse_default_instance_;
    new (ptr) ::google::storage::v1::Channel_ParamsEntry_DoNotUse();
  }
  ::google::storage::v1::Channel_ParamsEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Channel_ParamsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsChannel_ParamsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsChannel_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Channel_default_instance_;
    new (ptr) ::google::storage::v1::Channel();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Channel::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_Channel_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsChannel_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
      &scc_info_Channel_ParamsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListChannelsResponse_Items_default_instance_;
    new (ptr) ::google::storage::v1::ListChannelsResponse_Items();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListChannelsResponse_Items::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}};

static void InitDefaultsListChannelsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListChannelsResponse_default_instance_;
    new (ptr) ::google::storage::v1::ListChannelsResponse();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListChannelsResponse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListChannelsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListChannelsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_ListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsChecksummedData_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ChecksummedData_default_instance_;
    new (ptr) ::google::storage::v1::ChecksummedData();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ChecksummedData::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ChecksummedData_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsChecksummedData_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_UInt32Value_google_2fprotobuf_2fwrappers_2eproto.base,}};

static void InitDefaultsObjectChecksums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ObjectChecksums_default_instance_;
    new (ptr) ::google::storage::v1::ObjectChecksums();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ObjectChecksums::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ObjectChecksums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsObjectChecksums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_UInt32Value_google_2fprotobuf_2fwrappers_2eproto.base,}};

static void InitDefaultsCommonEnums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_CommonEnums_default_instance_;
    new (ptr) ::google::storage::v1::CommonEnums();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::CommonEnums::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_CommonEnums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsCommonEnums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsContentRange_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ContentRange_default_instance_;
    new (ptr) ::google::storage::v1::ContentRange();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ContentRange::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ContentRange_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsContentRange_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsHmacKeyMetadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_HmacKeyMetadata_default_instance_;
    new (ptr) ::google::storage::v1::HmacKeyMetadata();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::HmacKeyMetadata::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_HmacKeyMetadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsHmacKeyMetadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,}};

static void InitDefaultsNotification_CustomAttributesEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Notification_CustomAttributesEntry_DoNotUse_default_instance_;
    new (ptr) ::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse();
  }
  ::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Notification_CustomAttributesEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsNotification_CustomAttributesEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsNotification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Notification_default_instance_;
    new (ptr) ::google::storage::v1::Notification();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Notification::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Notification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsNotification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Notification_CustomAttributesEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsListNotificationsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListNotificationsResponse_default_instance_;
    new (ptr) ::google::storage::v1::ListNotificationsResponse();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListNotificationsResponse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListNotificationsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListNotificationsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Notification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsObject_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Object_CustomerEncryption_default_instance_;
    new (ptr) ::google::storage::v1::Object_CustomerEncryption();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Object_CustomerEncryption::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Object_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsObject_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsObject_MetadataEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Object_MetadataEntry_DoNotUse_default_instance_;
    new (ptr) ::google::storage::v1::Object_MetadataEntry_DoNotUse();
  }
  ::google::storage::v1::Object_MetadataEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Object_MetadataEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsObject_MetadataEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsObject_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Object_default_instance_;
    new (ptr) ::google::storage::v1::Object();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Object::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<7> scc_info_Object_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 7, InitDefaultsObject_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
      &scc_info_UInt32Value_google_2fprotobuf_2fwrappers_2eproto.base,
      &scc_info_Object_MetadataEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_BoolValue_google_2fprotobuf_2fwrappers_2eproto.base,
      &scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,
      &scc_info_Object_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ObjectAccessControl_default_instance_;
    new (ptr) ::google::storage::v1::ObjectAccessControl();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ObjectAccessControl::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsListObjectAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListObjectAccessControlsResponse_default_instance_;
    new (ptr) ::google::storage::v1::ListObjectAccessControlsResponse();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListObjectAccessControlsResponse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListObjectAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListObjectAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsListObjectsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ListObjectsResponse_default_instance_;
    new (ptr) ::google::storage::v1::ListObjectsResponse();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ListObjectsResponse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListObjectsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListObjectsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {
      &scc_info_Object_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base,}};

static void InitDefaultsProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ProjectTeam_default_instance_;
    new (ptr) ::google::storage::v1::ProjectTeam();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ProjectTeam::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsServiceAccount_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_ServiceAccount_default_instance_;
    new (ptr) ::google::storage::v1::ServiceAccount();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::ServiceAccount::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_ServiceAccount_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsServiceAccount_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

static void InitDefaultsOwner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::storage::v1::_Owner_default_instance_;
    new (ptr) ::google::storage::v1::Owner();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::storage::v1::Owner::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsOwner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto}, {}};

void InitDefaults_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_LabelsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Bucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListBucketAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListBucketsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Channel_ParamsEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Channel_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListChannelsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ChecksummedData_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ObjectChecksums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_CommonEnums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ContentRange_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_HmacKeyMetadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Notification_CustomAttributesEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Notification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListNotificationsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Object_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Object_MetadataEntry_DoNotUse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Object_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListObjectAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListObjectsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ServiceAccount_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
}

::google::protobuf::Metadata file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[39];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[3];
constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto = nullptr;

const ::google::protobuf::uint32 TableStruct_google_2fstorage_2fv1_2fstorage_5fresources_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Billing, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Billing, requester_pays_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Cors, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Cors, origin_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Cors, method_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Cors, response_header_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Cors, max_age_seconds_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Encryption, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Encryption, default_kms_key_name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess, enabled_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess, locked_time_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_IamConfiguration, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_IamConfiguration, uniform_bucket_level_access_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Action, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Action, type_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Action, storage_class_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, age_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, created_before_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, is_live_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, num_newer_versions_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, matches_storage_class_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule_Condition, matches_pattern_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule, action_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle_Rule, condition_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Lifecycle, rule_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Logging, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Logging, log_bucket_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Logging, log_object_prefix_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_RetentionPolicy, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_RetentionPolicy, effective_time_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_RetentionPolicy, is_locked_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_RetentionPolicy, retention_period_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Versioning, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Versioning, enabled_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Website, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Website, main_page_suffix_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_Website, not_found_page_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_LabelsEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_LabelsEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_LabelsEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket_LabelsEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, acl_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, default_object_acl_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, lifecycle_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, time_created_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, name_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, project_number_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, metageneration_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, cors_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, location_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, storage_class_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, etag_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, updated_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, default_event_based_hold_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, labels_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, website_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, versioning_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, logging_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, owner_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, encryption_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, billing_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, retention_policy_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, location_type_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, iam_configuration_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Bucket, zone_affinity_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, role_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, etag_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, bucket_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, entity_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, entity_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, email_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, domain_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::BucketAccessControl, project_team_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListBucketAccessControlsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListBucketAccessControlsResponse, items_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListBucketsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListBucketsResponse, items_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListBucketsResponse, next_page_token_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel_ParamsEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel_ParamsEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel_ParamsEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel_ParamsEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, resource_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, resource_uri_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, token_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, expiration_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, type_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, address_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, params_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Channel, payload_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse_Items, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse_Items, channel_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse_Items, resource_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse_Items, push_url_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse_Items, subscriber_email_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse_Items, creation_time_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListChannelsResponse, items_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ChecksummedData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ChecksummedData, content_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ChecksummedData, crc32c_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectChecksums, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectChecksums, crc32c_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectChecksums, md5_hash_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::CommonEnums, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ContentRange, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ContentRange, start_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ContentRange, end_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ContentRange, complete_length_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, access_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, project_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, service_account_email_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, state_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, time_created_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, updated_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::HmacKeyMetadata, etag_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, topic_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, event_types_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, custom_attributes_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, etag_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, object_name_prefix_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, payload_format_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Notification, id_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListNotificationsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListNotificationsResponse, items_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_CustomerEncryption, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_CustomerEncryption, encryption_algorithm_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_CustomerEncryption, key_sha256_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_MetadataEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_MetadataEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_MetadataEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object_MetadataEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, content_encoding_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, content_disposition_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, cache_control_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, acl_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, content_language_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, metageneration_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, time_deleted_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, content_type_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, size_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, time_created_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, crc32c_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, component_count_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, md5_hash_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, etag_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, updated_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, storage_class_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, kms_key_name_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, time_storage_class_updated_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, temporary_hold_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, retention_expiration_time_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, metadata_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, event_based_hold_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, name_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, bucket_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, generation_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, owner_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Object, customer_encryption_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, role_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, etag_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, bucket_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, object_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, generation_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, entity_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, entity_id_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, email_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, domain_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ObjectAccessControl, project_team_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListObjectAccessControlsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListObjectAccessControlsResponse, items_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListObjectsResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListObjectsResponse, prefixes_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListObjectsResponse, items_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ListObjectsResponse, next_page_token_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ProjectTeam, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ProjectTeam, project_number_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ProjectTeam, team_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ServiceAccount, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::ServiceAccount, email_address_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Owner, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Owner, entity_),
  PROTOBUF_FIELD_OFFSET(::google::storage::v1::Owner, entity_id_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::google::storage::v1::Bucket_Billing)},
  { 6, -1, sizeof(::google::storage::v1::Bucket_Cors)},
  { 15, -1, sizeof(::google::storage::v1::Bucket_Encryption)},
  { 21, -1, sizeof(::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess)},
  { 28, -1, sizeof(::google::storage::v1::Bucket_IamConfiguration)},
  { 34, -1, sizeof(::google::storage::v1::Bucket_Lifecycle_Rule_Action)},
  { 41, -1, sizeof(::google::storage::v1::Bucket_Lifecycle_Rule_Condition)},
  { 52, -1, sizeof(::google::storage::v1::Bucket_Lifecycle_Rule)},
  { 59, -1, sizeof(::google::storage::v1::Bucket_Lifecycle)},
  { 65, -1, sizeof(::google::storage::v1::Bucket_Logging)},
  { 72, -1, sizeof(::google::storage::v1::Bucket_RetentionPolicy)},
  { 80, -1, sizeof(::google::storage::v1::Bucket_Versioning)},
  { 86, -1, sizeof(::google::storage::v1::Bucket_Website)},
  { 93, 100, sizeof(::google::storage::v1::Bucket_LabelsEntry_DoNotUse)},
  { 102, -1, sizeof(::google::storage::v1::Bucket)},
  { 132, -1, sizeof(::google::storage::v1::BucketAccessControl)},
  { 146, -1, sizeof(::google::storage::v1::ListBucketAccessControlsResponse)},
  { 152, -1, sizeof(::google::storage::v1::ListBucketsResponse)},
  { 159, 166, sizeof(::google::storage::v1::Channel_ParamsEntry_DoNotUse)},
  { 168, -1, sizeof(::google::storage::v1::Channel)},
  { 182, -1, sizeof(::google::storage::v1::ListChannelsResponse_Items)},
  { 192, -1, sizeof(::google::storage::v1::ListChannelsResponse)},
  { 198, -1, sizeof(::google::storage::v1::ChecksummedData)},
  { 205, -1, sizeof(::google::storage::v1::ObjectChecksums)},
  { 212, -1, sizeof(::google::storage::v1::CommonEnums)},
  { 217, -1, sizeof(::google::storage::v1::ContentRange)},
  { 225, -1, sizeof(::google::storage::v1::HmacKeyMetadata)},
  { 238, 245, sizeof(::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse)},
  { 247, -1, sizeof(::google::storage::v1::Notification)},
  { 259, -1, sizeof(::google::storage::v1::ListNotificationsResponse)},
  { 265, -1, sizeof(::google::storage::v1::Object_CustomerEncryption)},
  { 272, 279, sizeof(::google::storage::v1::Object_MetadataEntry_DoNotUse)},
  { 281, -1, sizeof(::google::storage::v1::Object)},
  { 314, -1, sizeof(::google::storage::v1::ObjectAccessControl)},
  { 330, -1, sizeof(::google::storage::v1::ListObjectAccessControlsResponse)},
  { 336, -1, sizeof(::google::storage::v1::ListObjectsResponse)},
  { 344, -1, sizeof(::google::storage::v1::ProjectTeam)},
  { 351, -1, sizeof(::google::storage::v1::ServiceAccount)},
  { 357, -1, sizeof(::google::storage::v1::Owner)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Billing_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Cors_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Encryption_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_IamConfiguration_UniformBucketLevelAccess_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_IamConfiguration_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Lifecycle_Rule_Action_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Lifecycle_Rule_Condition_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Lifecycle_Rule_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Lifecycle_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Logging_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_RetentionPolicy_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Versioning_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_Website_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_LabelsEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Bucket_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_BucketAccessControl_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListBucketAccessControlsResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListBucketsResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Channel_ParamsEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Channel_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListChannelsResponse_Items_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListChannelsResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ChecksummedData_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ObjectChecksums_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_CommonEnums_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ContentRange_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_HmacKeyMetadata_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Notification_CustomAttributesEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Notification_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListNotificationsResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Object_CustomerEncryption_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Object_MetadataEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Object_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ObjectAccessControl_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListObjectAccessControlsResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ListObjectsResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ProjectTeam_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_ServiceAccount_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::storage::v1::_Owner_default_instance_),
};

::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto = {
  {}, AddDescriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto, "google/storage/v1/storage_resources.proto", schemas,
  file_default_instances, TableStruct_google_2fstorage_2fv1_2fstorage_5fresources_2eproto::offsets,
  file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto, 39, file_level_enum_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto, file_level_service_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto,
};

const char descriptor_table_protodef_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[] =
  "\n)google/storage/v1/storage_resources.pr"
  "oto\022\021google.storage.v1\032\037google/protobuf/"
  "timestamp.proto\032\036google/protobuf/wrapper"
  "s.proto\"\250\021\n\006Bucket\0223\n\003acl\030\001 \003(\0132&.google"
  ".storage.v1.BucketAccessControl\022B\n\022defau"
  "lt_object_acl\030\002 \003(\0132&.google.storage.v1."
  "ObjectAccessControl\0226\n\tlifecycle\030\003 \001(\0132#"
  ".google.storage.v1.Bucket.Lifecycle\0220\n\014t"
  "ime_created\030\004 \001(\0132\032.google.protobuf.Time"
  "stamp\022\n\n\002id\030\005 \001(\t\022\014\n\004name\030\006 \001(\t\022\026\n\016proje"
  "ct_number\030\007 \001(\003\022\026\n\016metageneration\030\010 \001(\003\022"
  ",\n\004cors\030\t \003(\0132\036.google.storage.v1.Bucket"
  ".Cors\022\020\n\010location\030\n \001(\t\022\025\n\rstorage_class"
  "\030\013 \001(\t\022\014\n\004etag\030\014 \001(\t\022+\n\007updated\030\r \001(\0132\032."
  "google.protobuf.Timestamp\022 \n\030default_eve"
  "nt_based_hold\030\016 \001(\010\0225\n\006labels\030\017 \003(\0132%.go"
  "ogle.storage.v1.Bucket.LabelsEntry\0222\n\007we"
  "bsite\030\020 \001(\0132!.google.storage.v1.Bucket.W"
  "ebsite\0228\n\nversioning\030\021 \001(\0132$.google.stor"
  "age.v1.Bucket.Versioning\0222\n\007logging\030\022 \001("
  "\0132!.google.storage.v1.Bucket.Logging\022\'\n\005"
  "owner\030\023 \001(\0132\030.google.storage.v1.Owner\0228\n"
  "\nencryption\030\024 \001(\0132$.google.storage.v1.Bu"
  "cket.Encryption\0222\n\007billing\030\025 \001(\0132!.googl"
  "e.storage.v1.Bucket.Billing\022C\n\020retention"
  "_policy\030\026 \001(\0132).google.storage.v1.Bucket"
  ".RetentionPolicy\022\025\n\rlocation_type\030\027 \001(\t\022"
  "E\n\021iam_configuration\030\030 \001(\0132*.google.stor"
  "age.v1.Bucket.IamConfiguration\022\025\n\rzone_a"
  "ffinity\030\031 \003(\t\032!\n\007Billing\022\026\n\016requester_pa"
  "ys\030\001 \001(\010\032X\n\004Cors\022\016\n\006origin\030\001 \003(\t\022\016\n\006meth"
  "od\030\002 \003(\t\022\027\n\017response_header\030\003 \003(\t\022\027\n\017max"
  "_age_seconds\030\004 \001(\005\032*\n\nEncryption\022\034\n\024defa"
  "ult_kms_key_name\030\001 \001(\t\032\332\001\n\020IamConfigurat"
  "ion\022h\n\033uniform_bucket_level_access\030\001 \001(\013"
  "2C.google.storage.v1.Bucket.IamConfigura"
  "tion.UniformBucketLevelAccess\032\\\n\030Uniform"
  "BucketLevelAccess\022\017\n\007enabled\030\001 \001(\010\022/\n\013lo"
  "cked_time\030\002 \001(\0132\032.google.protobuf.Timest"
  "amp\032\323\003\n\tLifecycle\0226\n\004rule\030\001 \003(\0132(.google"
  ".storage.v1.Bucket.Lifecycle.Rule\032\215\003\n\004Ru"
  "le\022\?\n\006action\030\001 \001(\0132/.google.storage.v1.B"
  "ucket.Lifecycle.Rule.Action\022E\n\tcondition"
  "\030\002 \001(\01322.google.storage.v1.Bucket.Lifecy"
  "cle.Rule.Condition\032-\n\006Action\022\014\n\004type\030\001 \001"
  "(\t\022\025\n\rstorage_class\030\002 \001(\t\032\315\001\n\tCondition\022"
  "\013\n\003age\030\001 \001(\005\0222\n\016created_before\030\002 \001(\0132\032.g"
  "oogle.protobuf.Timestamp\022+\n\007is_live\030\003 \001("
  "\0132\032.google.protobuf.BoolValue\022\032\n\022num_new"
  "er_versions\030\004 \001(\005\022\035\n\025matches_storage_cla"
  "ss\030\005 \003(\t\022\027\n\017matches_pattern\030\006 \001(\t\0328\n\007Log"
  "ging\022\022\n\nlog_bucket\030\001 \001(\t\022\031\n\021log_object_p"
  "refix\030\002 \001(\t\032r\n\017RetentionPolicy\0222\n\016effect"
  "ive_time\030\001 \001(\0132\032.google.protobuf.Timesta"
  "mp\022\021\n\tis_locked\030\002 \001(\010\022\030\n\020retention_perio"
  "d\030\003 \001(\003\032\035\n\nVersioning\022\017\n\007enabled\030\001 \001(\010\032;"
  "\n\007Website\022\030\n\020main_page_suffix\030\001 \001(\t\022\026\n\016n"
  "ot_found_page\030\002 \001(\t\032-\n\013LabelsEntry\022\013\n\003ke"
  "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\305\001\n\023BucketAcc"
  "essControl\022\014\n\004role\030\001 \001(\t\022\014\n\004etag\030\002 \001(\t\022\n"
  "\n\002id\030\003 \001(\t\022\016\n\006bucket\030\004 \001(\t\022\016\n\006entity\030\006 \001"
  "(\t\022\021\n\tentity_id\030\007 \001(\t\022\r\n\005email\030\010 \001(\t\022\016\n\006"
  "domain\030\t \001(\t\0224\n\014project_team\030\n \001(\0132\036.goo"
  "gle.storage.v1.ProjectTeam\"Y\n ListBucket"
  "AccessControlsResponse\0225\n\005items\030\001 \003(\0132&."
  "google.storage.v1.BucketAccessControl\"X\n"
  "\023ListBucketsResponse\022(\n\005items\030\001 \003(\0132\031.go"
  "ogle.storage.v1.Bucket\022\027\n\017next_page_toke"
  "n\030\002 \001(\t\"\226\002\n\007Channel\022\n\n\002id\030\001 \001(\t\022\023\n\013resou"
  "rce_id\030\002 \001(\t\022\024\n\014resource_uri\030\003 \001(\t\022\r\n\005to"
  "ken\030\004 \001(\t\022.\n\nexpiration\030\005 \001(\0132\032.google.p"
  "rotobuf.Timestamp\022\014\n\004type\030\006 \001(\t\022\017\n\007addre"
  "ss\030\007 \001(\t\0226\n\006params\030\010 \003(\0132&.google.storag"
  "e.v1.Channel.ParamsEntry\022\017\n\007payload\030\t \001("
  "\010\032-\n\013ParamsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002"
  " \001(\t:\0028\001\"\346\001\n\024ListChannelsResponse\022<\n\005ite"
  "ms\030\001 \003(\0132-.google.storage.v1.ListChannel"
  "sResponse.Items\032\217\001\n\005Items\022\022\n\nchannel_id\030"
  "\001 \001(\t\022\023\n\013resource_id\030\002 \001(\t\022\020\n\010push_url\030\003"
  " \001(\t\022\030\n\020subscriber_email\030\004 \001(\t\0221\n\rcreati"
  "on_time\030\005 \001(\0132\032.google.protobuf.Timestam"
  "p\"P\n\017ChecksummedData\022\017\n\007content\030\001 \001(\014\022,\n"
  "\006crc32c\030\002 \001(\0132\034.google.protobuf.UInt32Va"
  "lue\"Q\n\017ObjectChecksums\022,\n\006crc32c\030\001 \001(\0132\034"
  ".google.protobuf.UInt32Value\022\020\n\010md5_hash"
  "\030\002 \001(\t\"\247\004\n\013CommonEnums\">\n\nProjection\022\032\n\026"
  "PROJECTION_UNSPECIFIED\020\000\022\n\n\006NO_ACL\020\001\022\010\n\004"
  "FULL\020\002\"\325\001\n\023PredefinedBucketAcl\022%\n!PREDEF"
  "INED_BUCKET_ACL_UNSPECIFIED\020\000\022!\n\035BUCKET_"
  "ACL_AUTHENTICATED_READ\020\001\022\026\n\022BUCKET_ACL_P"
  "RIVATE\020\002\022\036\n\032BUCKET_ACL_PROJECT_PRIVATE\020\003"
  "\022\032\n\026BUCKET_ACL_PUBLIC_READ\020\004\022 \n\034BUCKET_A"
  "CL_PUBLIC_READ_WRITE\020\005\"\377\001\n\023PredefinedObj"
  "ectAcl\022%\n!PREDEFINED_OBJECT_ACL_UNSPECIF"
  "IED\020\000\022!\n\035OBJECT_ACL_AUTHENTICATED_READ\020\001"
  "\022(\n$OBJECT_ACL_BUCKET_OWNER_FULL_CONTROL"
  "\020\002\022 \n\034OBJECT_ACL_BUCKET_OWNER_READ\020\003\022\026\n\022"
  "OBJECT_ACL_PRIVATE\020\004\022\036\n\032OBJECT_ACL_PROJE"
  "CT_PRIVATE\020\005\022\032\n\026OBJECT_ACL_PUBLIC_READ\020\006"
  "\"C\n\014ContentRange\022\r\n\005start\030\001 \001(\003\022\013\n\003end\030\002"
  " \001(\003\022\027\n\017complete_length\030\003 \001(\003\"\337\001\n\017HmacKe"
  "yMetadata\022\n\n\002id\030\001 \001(\t\022\021\n\taccess_id\030\002 \001(\t"
  "\022\022\n\nproject_id\030\003 \001(\t\022\035\n\025service_account_"
  "email\030\004 \001(\t\022\r\n\005state\030\005 \001(\t\0220\n\014time_creat"
  "ed\030\006 \001(\0132\032.google.protobuf.Timestamp\022+\n\007"
  "updated\030\007 \001(\0132\032.google.protobuf.Timestam"
  "p\022\014\n\004etag\030\010 \001(\t\"\213\002\n\014Notification\022\r\n\005topi"
  "c\030\001 \001(\t\022\023\n\013event_types\030\002 \003(\t\022P\n\021custom_a"
  "ttributes\030\003 \003(\01325.google.storage.v1.Noti"
  "fication.CustomAttributesEntry\022\014\n\004etag\030\004"
  " \001(\t\022\032\n\022object_name_prefix\030\005 \001(\t\022\026\n\016payl"
  "oad_format\030\006 \001(\t\022\n\n\002id\030\007 \001(\t\0327\n\025CustomAt"
  "tributesEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001("
  "\t:\0028\001\"K\n\031ListNotificationsResponse\022.\n\005it"
  "ems\030\001 \003(\0132\037.google.storage.v1.Notificati"
  "on\"\271\010\n\006Object\022\030\n\020content_encoding\030\001 \001(\t\022"
  "\033\n\023content_disposition\030\002 \001(\t\022\025\n\rcache_co"
  "ntrol\030\003 \001(\t\0223\n\003acl\030\004 \003(\0132&.google.storag"
  "e.v1.ObjectAccessControl\022\030\n\020content_lang"
  "uage\030\005 \001(\t\022\026\n\016metageneration\030\006 \001(\003\0220\n\014ti"
  "me_deleted\030\007 \001(\0132\032.google.protobuf.Times"
  "tamp\022\024\n\014content_type\030\010 \001(\t\022\014\n\004size\030\t \001(\003"
  "\0220\n\014time_created\030\n \001(\0132\032.google.protobuf"
  ".Timestamp\022,\n\006crc32c\030\013 \001(\0132\034.google.prot"
  "obuf.UInt32Value\022\027\n\017component_count\030\014 \001("
  "\005\022\020\n\010md5_hash\030\r \001(\t\022\014\n\004etag\030\016 \001(\t\022+\n\007upd"
  "ated\030\017 \001(\0132\032.google.protobuf.Timestamp\022\025"
  "\n\rstorage_class\030\020 \001(\t\022\024\n\014kms_key_name\030\021 "
  "\001(\t\022>\n\032time_storage_class_updated\030\022 \001(\0132"
  "\032.google.protobuf.Timestamp\022\026\n\016temporary"
  "_hold\030\023 \001(\010\022=\n\031retention_expiration_time"
  "\030\024 \001(\0132\032.google.protobuf.Timestamp\0229\n\010me"
  "tadata\030\025 \003(\0132\'.google.storage.v1.Object."
  "MetadataEntry\0224\n\020event_based_hold\030\035 \001(\0132"
  "\032.google.protobuf.BoolValue\022\014\n\004name\030\027 \001("
  "\t\022\n\n\002id\030\030 \001(\t\022\016\n\006bucket\030\031 \001(\t\022\022\n\ngenerat"
  "ion\030\032 \001(\003\022\'\n\005owner\030\033 \001(\0132\030.google.storag"
  "e.v1.Owner\022I\n\023customer_encryption\030\034 \001(\0132"
  ",.google.storage.v1.Object.CustomerEncry"
  "ption\032F\n\022CustomerEncryption\022\034\n\024encryptio"
  "n_algorithm\030\001 \001(\t\022\022\n\nkey_sha256\030\002 \001(\t\032/\n"
  "\rMetadataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001"
  "(\t:\0028\001\"\351\001\n\023ObjectAccessControl\022\014\n\004role\030\001"
  " \001(\t\022\014\n\004etag\030\002 \001(\t\022\n\n\002id\030\003 \001(\t\022\016\n\006bucket"
  "\030\004 \001(\t\022\016\n\006object\030\005 \001(\t\022\022\n\ngeneration\030\006 \001"
  "(\003\022\016\n\006entity\030\007 \001(\t\022\021\n\tentity_id\030\010 \001(\t\022\r\n"
  "\005email\030\t \001(\t\022\016\n\006domain\030\n \001(\t\0224\n\014project_"
  "team\030\013 \001(\0132\036.google.storage.v1.ProjectTe"
  "am\"Y\n ListObjectAccessControlsResponse\0225"
  "\n\005items\030\001 \003(\0132&.google.storage.v1.Object"
  "AccessControl\"j\n\023ListObjectsResponse\022\020\n\010"
  "prefixes\030\001 \003(\t\022(\n\005items\030\002 \003(\0132\031.google.s"
  "torage.v1.Object\022\027\n\017next_page_token\030\003 \001("
  "\t\"3\n\013ProjectTeam\022\026\n\016project_number\030\001 \001(\t"
  "\022\014\n\004team\030\002 \001(\t\"\'\n\016ServiceAccount\022\025\n\remai"
  "l_address\030\001 \001(\t\"*\n\005Owner\022\016\n\006entity\030\001 \001(\t"
  "\022\021\n\tentity_id\030\002 \001(\tBo\n\025com.google.storag"
  "e.v1B\032CloudStorageResourcesProtoP\001Z8goog"
  "le.golang.org/genproto/googleapis/storag"
  "e/v1;storageb\006proto3"
  ;
::google::protobuf::internal::DescriptorTable descriptor_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto = {
  false, InitDefaults_google_2fstorage_2fv1_2fstorage_5fresources_2eproto, 
  descriptor_table_protodef_google_2fstorage_2fv1_2fstorage_5fresources_2eproto,
  "google/storage/v1/storage_resources.proto", &assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto, 6380,
};

void AddDescriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto() {
  static constexpr ::google::protobuf::internal::InitFunc deps[2] =
  {
    ::AddDescriptors_google_2fprotobuf_2ftimestamp_2eproto,
    ::AddDescriptors_google_2fprotobuf_2fwrappers_2eproto,
  };
 ::google::protobuf::internal::AddDescriptors(&descriptor_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto, deps, 2);
}

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto = []() { AddDescriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto(); return true; }();
namespace google {
namespace storage {
namespace v1 {
const ::google::protobuf::EnumDescriptor* CommonEnums_Projection_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return file_level_enum_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[0];
}
bool CommonEnums_Projection_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const CommonEnums_Projection CommonEnums::PROJECTION_UNSPECIFIED;
const CommonEnums_Projection CommonEnums::NO_ACL;
const CommonEnums_Projection CommonEnums::FULL;
const CommonEnums_Projection CommonEnums::Projection_MIN;
const CommonEnums_Projection CommonEnums::Projection_MAX;
const int CommonEnums::Projection_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* CommonEnums_PredefinedBucketAcl_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return file_level_enum_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[1];
}
bool CommonEnums_PredefinedBucketAcl_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const CommonEnums_PredefinedBucketAcl CommonEnums::PREDEFINED_BUCKET_ACL_UNSPECIFIED;
const CommonEnums_PredefinedBucketAcl CommonEnums::BUCKET_ACL_AUTHENTICATED_READ;
const CommonEnums_PredefinedBucketAcl CommonEnums::BUCKET_ACL_PRIVATE;
const CommonEnums_PredefinedBucketAcl CommonEnums::BUCKET_ACL_PROJECT_PRIVATE;
const CommonEnums_PredefinedBucketAcl CommonEnums::BUCKET_ACL_PUBLIC_READ;
const CommonEnums_PredefinedBucketAcl CommonEnums::BUCKET_ACL_PUBLIC_READ_WRITE;
const CommonEnums_PredefinedBucketAcl CommonEnums::PredefinedBucketAcl_MIN;
const CommonEnums_PredefinedBucketAcl CommonEnums::PredefinedBucketAcl_MAX;
const int CommonEnums::PredefinedBucketAcl_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* CommonEnums_PredefinedObjectAcl_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return file_level_enum_descriptors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[2];
}
bool CommonEnums_PredefinedObjectAcl_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const CommonEnums_PredefinedObjectAcl CommonEnums::PREDEFINED_OBJECT_ACL_UNSPECIFIED;
const CommonEnums_PredefinedObjectAcl CommonEnums::OBJECT_ACL_AUTHENTICATED_READ;
const CommonEnums_PredefinedObjectAcl CommonEnums::OBJECT_ACL_BUCKET_OWNER_FULL_CONTROL;
const CommonEnums_PredefinedObjectAcl CommonEnums::OBJECT_ACL_BUCKET_OWNER_READ;
const CommonEnums_PredefinedObjectAcl CommonEnums::OBJECT_ACL_PRIVATE;
const CommonEnums_PredefinedObjectAcl CommonEnums::OBJECT_ACL_PROJECT_PRIVATE;
const CommonEnums_PredefinedObjectAcl CommonEnums::OBJECT_ACL_PUBLIC_READ;
const CommonEnums_PredefinedObjectAcl CommonEnums::PredefinedObjectAcl_MIN;
const CommonEnums_PredefinedObjectAcl CommonEnums::PredefinedObjectAcl_MAX;
const int CommonEnums::PredefinedObjectAcl_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

// ===================================================================

void Bucket_Billing::InitAsDefaultInstance() {
}
class Bucket_Billing::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Billing::kRequesterPaysFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Billing::Bucket_Billing()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Billing)
}
Bucket_Billing::Bucket_Billing(const Bucket_Billing& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  requester_pays_ = from.requester_pays_;
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Billing)
}

void Bucket_Billing::SharedCtor() {
  requester_pays_ = false;
}

Bucket_Billing::~Bucket_Billing() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Billing)
  SharedDtor();
}

void Bucket_Billing::SharedDtor() {
}

void Bucket_Billing::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Billing& Bucket_Billing::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Billing_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Billing::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Billing)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  requester_pays_ = false;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Billing::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Billing*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // bool requester_pays = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
        msg->set_requester_pays(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Billing::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Billing)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool requester_pays = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &requester_pays_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Billing)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Billing)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Billing::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Billing)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool requester_pays = 1;
  if (this->requester_pays() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->requester_pays(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Billing)
}

::google::protobuf::uint8* Bucket_Billing::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Billing)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool requester_pays = 1;
  if (this->requester_pays() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->requester_pays(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Billing)
  return target;
}

size_t Bucket_Billing::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Billing)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bool requester_pays = 1;
  if (this->requester_pays() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Billing::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Billing)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Billing* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Billing>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Billing)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Billing)
    MergeFrom(*source);
  }
}

void Bucket_Billing::MergeFrom(const Bucket_Billing& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Billing)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.requester_pays() != 0) {
    set_requester_pays(from.requester_pays());
  }
}

void Bucket_Billing::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Billing)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Billing::CopyFrom(const Bucket_Billing& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Billing)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Billing::IsInitialized() const {
  return true;
}

void Bucket_Billing::Swap(Bucket_Billing* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Billing::InternalSwap(Bucket_Billing* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(requester_pays_, other->requester_pays_);
}

::google::protobuf::Metadata Bucket_Billing::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Cors::InitAsDefaultInstance() {
}
class Bucket_Cors::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Cors::kOriginFieldNumber;
const int Bucket_Cors::kMethodFieldNumber;
const int Bucket_Cors::kResponseHeaderFieldNumber;
const int Bucket_Cors::kMaxAgeSecondsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Cors::Bucket_Cors()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Cors)
}
Bucket_Cors::Bucket_Cors(const Bucket_Cors& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      origin_(from.origin_),
      method_(from.method_),
      response_header_(from.response_header_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  max_age_seconds_ = from.max_age_seconds_;
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Cors)
}

void Bucket_Cors::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  max_age_seconds_ = 0;
}

Bucket_Cors::~Bucket_Cors() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Cors)
  SharedDtor();
}

void Bucket_Cors::SharedDtor() {
}

void Bucket_Cors::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Cors& Bucket_Cors::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Cors_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Cors::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Cors)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  origin_.Clear();
  method_.Clear();
  response_header_.Clear();
  max_age_seconds_ = 0;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Cors::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Cors*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated string origin = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Cors.origin");
          object = msg->add_origin();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      // repeated string method = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Cors.method");
          object = msg->add_method();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 18 && (ptr += 1));
        break;
      }
      // repeated string response_header = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Cors.response_header");
          object = msg->add_response_header();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 26 && (ptr += 1));
        break;
      }
      // int32 max_age_seconds = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual;
        msg->set_max_age_seconds(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Cors::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Cors)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated string origin = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_origin()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->origin(this->origin_size() - 1).data(),
            static_cast<int>(this->origin(this->origin_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Cors.origin"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string method = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_method()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->method(this->method_size() - 1).data(),
            static_cast<int>(this->method(this->method_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Cors.method"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string response_header = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_response_header()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->response_header(this->response_header_size() - 1).data(),
            static_cast<int>(this->response_header(this->response_header_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Cors.response_header"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 max_age_seconds = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &max_age_seconds_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Cors)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Cors)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Cors::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Cors)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string origin = 1;
  for (int i = 0, n = this->origin_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->origin(i).data(), static_cast<int>(this->origin(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Cors.origin");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      1, this->origin(i), output);
  }

  // repeated string method = 2;
  for (int i = 0, n = this->method_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->method(i).data(), static_cast<int>(this->method(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Cors.method");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      2, this->method(i), output);
  }

  // repeated string response_header = 3;
  for (int i = 0, n = this->response_header_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->response_header(i).data(), static_cast<int>(this->response_header(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Cors.response_header");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->response_header(i), output);
  }

  // int32 max_age_seconds = 4;
  if (this->max_age_seconds() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->max_age_seconds(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Cors)
}

::google::protobuf::uint8* Bucket_Cors::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Cors)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string origin = 1;
  for (int i = 0, n = this->origin_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->origin(i).data(), static_cast<int>(this->origin(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Cors.origin");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(1, this->origin(i), target);
  }

  // repeated string method = 2;
  for (int i = 0, n = this->method_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->method(i).data(), static_cast<int>(this->method(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Cors.method");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(2, this->method(i), target);
  }

  // repeated string response_header = 3;
  for (int i = 0, n = this->response_header_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->response_header(i).data(), static_cast<int>(this->response_header(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Cors.response_header");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(3, this->response_header(i), target);
  }

  // int32 max_age_seconds = 4;
  if (this->max_age_seconds() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->max_age_seconds(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Cors)
  return target;
}

size_t Bucket_Cors::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Cors)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string origin = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->origin_size());
  for (int i = 0, n = this->origin_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->origin(i));
  }

  // repeated string method = 2;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->method_size());
  for (int i = 0, n = this->method_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->method(i));
  }

  // repeated string response_header = 3;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->response_header_size());
  for (int i = 0, n = this->response_header_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->response_header(i));
  }

  // int32 max_age_seconds = 4;
  if (this->max_age_seconds() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->max_age_seconds());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Cors::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Cors)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Cors* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Cors>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Cors)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Cors)
    MergeFrom(*source);
  }
}

void Bucket_Cors::MergeFrom(const Bucket_Cors& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Cors)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  origin_.MergeFrom(from.origin_);
  method_.MergeFrom(from.method_);
  response_header_.MergeFrom(from.response_header_);
  if (from.max_age_seconds() != 0) {
    set_max_age_seconds(from.max_age_seconds());
  }
}

void Bucket_Cors::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Cors)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Cors::CopyFrom(const Bucket_Cors& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Cors)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Cors::IsInitialized() const {
  return true;
}

void Bucket_Cors::Swap(Bucket_Cors* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Cors::InternalSwap(Bucket_Cors* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  origin_.InternalSwap(CastToBase(&other->origin_));
  method_.InternalSwap(CastToBase(&other->method_));
  response_header_.InternalSwap(CastToBase(&other->response_header_));
  swap(max_age_seconds_, other->max_age_seconds_);
}

::google::protobuf::Metadata Bucket_Cors::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Encryption::InitAsDefaultInstance() {
}
class Bucket_Encryption::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Encryption::kDefaultKmsKeyNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Encryption::Bucket_Encryption()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Encryption)
}
Bucket_Encryption::Bucket_Encryption(const Bucket_Encryption& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  default_kms_key_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.default_kms_key_name().size() > 0) {
    default_kms_key_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.default_kms_key_name_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Encryption)
}

void Bucket_Encryption::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  default_kms_key_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Bucket_Encryption::~Bucket_Encryption() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Encryption)
  SharedDtor();
}

void Bucket_Encryption::SharedDtor() {
  default_kms_key_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Bucket_Encryption::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Encryption& Bucket_Encryption::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Encryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Encryption::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Encryption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  default_kms_key_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Encryption::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Encryption*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string default_kms_key_name = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Encryption.default_kms_key_name");
        object = msg->mutable_default_kms_key_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Encryption::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Encryption)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string default_kms_key_name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_default_kms_key_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->default_kms_key_name().data(), static_cast<int>(this->default_kms_key_name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Encryption.default_kms_key_name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Encryption)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Encryption)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Encryption::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Encryption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string default_kms_key_name = 1;
  if (this->default_kms_key_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->default_kms_key_name().data(), static_cast<int>(this->default_kms_key_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Encryption.default_kms_key_name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->default_kms_key_name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Encryption)
}

::google::protobuf::uint8* Bucket_Encryption::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Encryption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string default_kms_key_name = 1;
  if (this->default_kms_key_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->default_kms_key_name().data(), static_cast<int>(this->default_kms_key_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Encryption.default_kms_key_name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->default_kms_key_name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Encryption)
  return target;
}

size_t Bucket_Encryption::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Encryption)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string default_kms_key_name = 1;
  if (this->default_kms_key_name().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->default_kms_key_name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Encryption::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Encryption)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Encryption* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Encryption>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Encryption)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Encryption)
    MergeFrom(*source);
  }
}

void Bucket_Encryption::MergeFrom(const Bucket_Encryption& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Encryption)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.default_kms_key_name().size() > 0) {

    default_kms_key_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.default_kms_key_name_);
  }
}

void Bucket_Encryption::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Encryption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Encryption::CopyFrom(const Bucket_Encryption& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Encryption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Encryption::IsInitialized() const {
  return true;
}

void Bucket_Encryption::Swap(Bucket_Encryption* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Encryption::InternalSwap(Bucket_Encryption* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  default_kms_key_name_.Swap(&other->default_kms_key_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Bucket_Encryption::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_IamConfiguration_UniformBucketLevelAccess::InitAsDefaultInstance() {
  ::google::storage::v1::_Bucket_IamConfiguration_UniformBucketLevelAccess_default_instance_._instance.get_mutable()->locked_time_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
}
class Bucket_IamConfiguration_UniformBucketLevelAccess::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& locked_time(const Bucket_IamConfiguration_UniformBucketLevelAccess* msg);
};

const ::google::protobuf::Timestamp&
Bucket_IamConfiguration_UniformBucketLevelAccess::HasBitSetters::locked_time(const Bucket_IamConfiguration_UniformBucketLevelAccess* msg) {
  return *msg->locked_time_;
}
void Bucket_IamConfiguration_UniformBucketLevelAccess::clear_locked_time() {
  if (GetArenaNoVirtual() == nullptr && locked_time_ != nullptr) {
    delete locked_time_;
  }
  locked_time_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_IamConfiguration_UniformBucketLevelAccess::kEnabledFieldNumber;
const int Bucket_IamConfiguration_UniformBucketLevelAccess::kLockedTimeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_IamConfiguration_UniformBucketLevelAccess::Bucket_IamConfiguration_UniformBucketLevelAccess()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
}
Bucket_IamConfiguration_UniformBucketLevelAccess::Bucket_IamConfiguration_UniformBucketLevelAccess(const Bucket_IamConfiguration_UniformBucketLevelAccess& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_locked_time()) {
    locked_time_ = new ::google::protobuf::Timestamp(*from.locked_time_);
  } else {
    locked_time_ = nullptr;
  }
  enabled_ = from.enabled_;
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::memset(&locked_time_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&enabled_) -
      reinterpret_cast<char*>(&locked_time_)) + sizeof(enabled_));
}

Bucket_IamConfiguration_UniformBucketLevelAccess::~Bucket_IamConfiguration_UniformBucketLevelAccess() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  SharedDtor();
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::SharedDtor() {
  if (this != internal_default_instance()) delete locked_time_;
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_IamConfiguration_UniformBucketLevelAccess& Bucket_IamConfiguration_UniformBucketLevelAccess::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_IamConfiguration_UniformBucketLevelAccess_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_IamConfiguration_UniformBucketLevelAccess::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && locked_time_ != nullptr) {
    delete locked_time_;
  }
  locked_time_ = nullptr;
  enabled_ = false;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_IamConfiguration_UniformBucketLevelAccess::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_IamConfiguration_UniformBucketLevelAccess*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // bool enabled = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
        msg->set_enabled(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // .google.protobuf.Timestamp locked_time = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_locked_time();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_IamConfiguration_UniformBucketLevelAccess::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool enabled = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &enabled_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp locked_time = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_locked_time()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_IamConfiguration_UniformBucketLevelAccess::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enabled = 1;
  if (this->enabled() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->enabled(), output);
  }

  // .google.protobuf.Timestamp locked_time = 2;
  if (this->has_locked_time()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::locked_time(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
}

::google::protobuf::uint8* Bucket_IamConfiguration_UniformBucketLevelAccess::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enabled = 1;
  if (this->enabled() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->enabled(), target);
  }

  // .google.protobuf.Timestamp locked_time = 2;
  if (this->has_locked_time()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::locked_time(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  return target;
}

size_t Bucket_IamConfiguration_UniformBucketLevelAccess::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .google.protobuf.Timestamp locked_time = 2;
  if (this->has_locked_time()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *locked_time_);
  }

  // bool enabled = 1;
  if (this->enabled() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_IamConfiguration_UniformBucketLevelAccess* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_IamConfiguration_UniformBucketLevelAccess>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
    MergeFrom(*source);
  }
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::MergeFrom(const Bucket_IamConfiguration_UniformBucketLevelAccess& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_locked_time()) {
    mutable_locked_time()->::google::protobuf::Timestamp::MergeFrom(from.locked_time());
  }
  if (from.enabled() != 0) {
    set_enabled(from.enabled());
  }
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::CopyFrom(const Bucket_IamConfiguration_UniformBucketLevelAccess& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_IamConfiguration_UniformBucketLevelAccess::IsInitialized() const {
  return true;
}

void Bucket_IamConfiguration_UniformBucketLevelAccess::Swap(Bucket_IamConfiguration_UniformBucketLevelAccess* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_IamConfiguration_UniformBucketLevelAccess::InternalSwap(Bucket_IamConfiguration_UniformBucketLevelAccess* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(locked_time_, other->locked_time_);
  swap(enabled_, other->enabled_);
}

::google::protobuf::Metadata Bucket_IamConfiguration_UniformBucketLevelAccess::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_IamConfiguration::InitAsDefaultInstance() {
  ::google::storage::v1::_Bucket_IamConfiguration_default_instance_._instance.get_mutable()->uniform_bucket_level_access_ = const_cast< ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess*>(
      ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess::internal_default_instance());
}
class Bucket_IamConfiguration::HasBitSetters {
 public:
  static const ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess& uniform_bucket_level_access(const Bucket_IamConfiguration* msg);
};

const ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess&
Bucket_IamConfiguration::HasBitSetters::uniform_bucket_level_access(const Bucket_IamConfiguration* msg) {
  return *msg->uniform_bucket_level_access_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_IamConfiguration::kUniformBucketLevelAccessFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_IamConfiguration::Bucket_IamConfiguration()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.IamConfiguration)
}
Bucket_IamConfiguration::Bucket_IamConfiguration(const Bucket_IamConfiguration& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_uniform_bucket_level_access()) {
    uniform_bucket_level_access_ = new ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess(*from.uniform_bucket_level_access_);
  } else {
    uniform_bucket_level_access_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.IamConfiguration)
}

void Bucket_IamConfiguration::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  uniform_bucket_level_access_ = nullptr;
}

Bucket_IamConfiguration::~Bucket_IamConfiguration() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.IamConfiguration)
  SharedDtor();
}

void Bucket_IamConfiguration::SharedDtor() {
  if (this != internal_default_instance()) delete uniform_bucket_level_access_;
}

void Bucket_IamConfiguration::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_IamConfiguration& Bucket_IamConfiguration::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_IamConfiguration_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_IamConfiguration::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.IamConfiguration)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && uniform_bucket_level_access_ != nullptr) {
    delete uniform_bucket_level_access_;
  }
  uniform_bucket_level_access_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_IamConfiguration::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_IamConfiguration*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // .google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess uniform_bucket_level_access = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess::_InternalParse;
        object = msg->mutable_uniform_bucket_level_access();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_IamConfiguration::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.IamConfiguration)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess uniform_bucket_level_access = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_uniform_bucket_level_access()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.IamConfiguration)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.IamConfiguration)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_IamConfiguration::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.IamConfiguration)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess uniform_bucket_level_access = 1;
  if (this->has_uniform_bucket_level_access()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::uniform_bucket_level_access(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.IamConfiguration)
}

::google::protobuf::uint8* Bucket_IamConfiguration::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.IamConfiguration)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess uniform_bucket_level_access = 1;
  if (this->has_uniform_bucket_level_access()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::uniform_bucket_level_access(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.IamConfiguration)
  return target;
}

size_t Bucket_IamConfiguration::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.IamConfiguration)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .google.storage.v1.Bucket.IamConfiguration.UniformBucketLevelAccess uniform_bucket_level_access = 1;
  if (this->has_uniform_bucket_level_access()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *uniform_bucket_level_access_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_IamConfiguration::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.IamConfiguration)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_IamConfiguration* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_IamConfiguration>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.IamConfiguration)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.IamConfiguration)
    MergeFrom(*source);
  }
}

void Bucket_IamConfiguration::MergeFrom(const Bucket_IamConfiguration& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.IamConfiguration)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_uniform_bucket_level_access()) {
    mutable_uniform_bucket_level_access()->::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess::MergeFrom(from.uniform_bucket_level_access());
  }
}

void Bucket_IamConfiguration::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.IamConfiguration)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_IamConfiguration::CopyFrom(const Bucket_IamConfiguration& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.IamConfiguration)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_IamConfiguration::IsInitialized() const {
  return true;
}

void Bucket_IamConfiguration::Swap(Bucket_IamConfiguration* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_IamConfiguration::InternalSwap(Bucket_IamConfiguration* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(uniform_bucket_level_access_, other->uniform_bucket_level_access_);
}

::google::protobuf::Metadata Bucket_IamConfiguration::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Lifecycle_Rule_Action::InitAsDefaultInstance() {
}
class Bucket_Lifecycle_Rule_Action::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Lifecycle_Rule_Action::kTypeFieldNumber;
const int Bucket_Lifecycle_Rule_Action::kStorageClassFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Lifecycle_Rule_Action::Bucket_Lifecycle_Rule_Action()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Lifecycle.Rule.Action)
}
Bucket_Lifecycle_Rule_Action::Bucket_Lifecycle_Rule_Action(const Bucket_Lifecycle_Rule_Action& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.type().size() > 0) {
    type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_);
  }
  storage_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.storage_class().size() > 0) {
    storage_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.storage_class_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Lifecycle.Rule.Action)
}

void Bucket_Lifecycle_Rule_Action::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Bucket_Lifecycle_Rule_Action::~Bucket_Lifecycle_Rule_Action() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  SharedDtor();
}

void Bucket_Lifecycle_Rule_Action::SharedDtor() {
  type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Bucket_Lifecycle_Rule_Action::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Lifecycle_Rule_Action& Bucket_Lifecycle_Rule_Action::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Lifecycle_Rule_Action_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Lifecycle_Rule_Action::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Lifecycle_Rule_Action::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Lifecycle_Rule_Action*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string type = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Lifecycle.Rule.Action.type");
        object = msg->mutable_type();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string storage_class = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Lifecycle.Rule.Action.storage_class");
        object = msg->mutable_storage_class();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Lifecycle_Rule_Action::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string type = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_type()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->type().data(), static_cast<int>(this->type().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Lifecycle.Rule.Action.type"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string storage_class = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_storage_class()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->storage_class().data(), static_cast<int>(this->storage_class().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Lifecycle.Rule.Action.storage_class"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Lifecycle_Rule_Action::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string type = 1;
  if (this->type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->type().data(), static_cast<int>(this->type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Action.type");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->type(), output);
  }

  // string storage_class = 2;
  if (this->storage_class().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->storage_class().data(), static_cast<int>(this->storage_class().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Action.storage_class");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->storage_class(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Lifecycle.Rule.Action)
}

::google::protobuf::uint8* Bucket_Lifecycle_Rule_Action::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string type = 1;
  if (this->type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->type().data(), static_cast<int>(this->type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Action.type");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->type(), target);
  }

  // string storage_class = 2;
  if (this->storage_class().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->storage_class().data(), static_cast<int>(this->storage_class().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Action.storage_class");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->storage_class(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  return target;
}

size_t Bucket_Lifecycle_Rule_Action::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string type = 1;
  if (this->type().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->type());
  }

  // string storage_class = 2;
  if (this->storage_class().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->storage_class());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Lifecycle_Rule_Action::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Lifecycle_Rule_Action* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Lifecycle_Rule_Action>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Lifecycle.Rule.Action)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Lifecycle.Rule.Action)
    MergeFrom(*source);
  }
}

void Bucket_Lifecycle_Rule_Action::MergeFrom(const Bucket_Lifecycle_Rule_Action& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.type().size() > 0) {

    type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_);
  }
  if (from.storage_class().size() > 0) {

    storage_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.storage_class_);
  }
}

void Bucket_Lifecycle_Rule_Action::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Lifecycle_Rule_Action::CopyFrom(const Bucket_Lifecycle_Rule_Action& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Action)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Lifecycle_Rule_Action::IsInitialized() const {
  return true;
}

void Bucket_Lifecycle_Rule_Action::Swap(Bucket_Lifecycle_Rule_Action* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Lifecycle_Rule_Action::InternalSwap(Bucket_Lifecycle_Rule_Action* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  type_.Swap(&other->type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  storage_class_.Swap(&other->storage_class_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Bucket_Lifecycle_Rule_Action::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Lifecycle_Rule_Condition::InitAsDefaultInstance() {
  ::google::storage::v1::_Bucket_Lifecycle_Rule_Condition_default_instance_._instance.get_mutable()->created_before_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Bucket_Lifecycle_Rule_Condition_default_instance_._instance.get_mutable()->is_live_ = const_cast< ::google::protobuf::BoolValue*>(
      ::google::protobuf::BoolValue::internal_default_instance());
}
class Bucket_Lifecycle_Rule_Condition::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& created_before(const Bucket_Lifecycle_Rule_Condition* msg);
  static const ::google::protobuf::BoolValue& is_live(const Bucket_Lifecycle_Rule_Condition* msg);
};

const ::google::protobuf::Timestamp&
Bucket_Lifecycle_Rule_Condition::HasBitSetters::created_before(const Bucket_Lifecycle_Rule_Condition* msg) {
  return *msg->created_before_;
}
const ::google::protobuf::BoolValue&
Bucket_Lifecycle_Rule_Condition::HasBitSetters::is_live(const Bucket_Lifecycle_Rule_Condition* msg) {
  return *msg->is_live_;
}
void Bucket_Lifecycle_Rule_Condition::clear_created_before() {
  if (GetArenaNoVirtual() == nullptr && created_before_ != nullptr) {
    delete created_before_;
  }
  created_before_ = nullptr;
}
void Bucket_Lifecycle_Rule_Condition::clear_is_live() {
  if (GetArenaNoVirtual() == nullptr && is_live_ != nullptr) {
    delete is_live_;
  }
  is_live_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Lifecycle_Rule_Condition::kAgeFieldNumber;
const int Bucket_Lifecycle_Rule_Condition::kCreatedBeforeFieldNumber;
const int Bucket_Lifecycle_Rule_Condition::kIsLiveFieldNumber;
const int Bucket_Lifecycle_Rule_Condition::kNumNewerVersionsFieldNumber;
const int Bucket_Lifecycle_Rule_Condition::kMatchesStorageClassFieldNumber;
const int Bucket_Lifecycle_Rule_Condition::kMatchesPatternFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Lifecycle_Rule_Condition::Bucket_Lifecycle_Rule_Condition()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
}
Bucket_Lifecycle_Rule_Condition::Bucket_Lifecycle_Rule_Condition(const Bucket_Lifecycle_Rule_Condition& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      matches_storage_class_(from.matches_storage_class_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  matches_pattern_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.matches_pattern().size() > 0) {
    matches_pattern_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.matches_pattern_);
  }
  if (from.has_created_before()) {
    created_before_ = new ::google::protobuf::Timestamp(*from.created_before_);
  } else {
    created_before_ = nullptr;
  }
  if (from.has_is_live()) {
    is_live_ = new ::google::protobuf::BoolValue(*from.is_live_);
  } else {
    is_live_ = nullptr;
  }
  ::memcpy(&age_, &from.age_,
    static_cast<size_t>(reinterpret_cast<char*>(&num_newer_versions_) -
    reinterpret_cast<char*>(&age_)) + sizeof(num_newer_versions_));
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
}

void Bucket_Lifecycle_Rule_Condition::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  matches_pattern_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&created_before_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_newer_versions_) -
      reinterpret_cast<char*>(&created_before_)) + sizeof(num_newer_versions_));
}

Bucket_Lifecycle_Rule_Condition::~Bucket_Lifecycle_Rule_Condition() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  SharedDtor();
}

void Bucket_Lifecycle_Rule_Condition::SharedDtor() {
  matches_pattern_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete created_before_;
  if (this != internal_default_instance()) delete is_live_;
}

void Bucket_Lifecycle_Rule_Condition::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Lifecycle_Rule_Condition& Bucket_Lifecycle_Rule_Condition::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Lifecycle_Rule_Condition_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Lifecycle_Rule_Condition::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  matches_storage_class_.Clear();
  matches_pattern_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && created_before_ != nullptr) {
    delete created_before_;
  }
  created_before_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && is_live_ != nullptr) {
    delete is_live_;
  }
  is_live_ = nullptr;
  ::memset(&age_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&num_newer_versions_) -
      reinterpret_cast<char*>(&age_)) + sizeof(num_newer_versions_));
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Lifecycle_Rule_Condition::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Lifecycle_Rule_Condition*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // int32 age = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
        msg->set_age(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // .google.protobuf.Timestamp created_before = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_created_before();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.protobuf.BoolValue is_live = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::BoolValue::_InternalParse;
        object = msg->mutable_is_live();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // int32 num_newer_versions = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual;
        msg->set_num_newer_versions(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // repeated string matches_storage_class = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_storage_class");
          object = msg->add_matches_storage_class();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 42 && (ptr += 1));
        break;
      }
      // string matches_pattern = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_pattern");
        object = msg->mutable_matches_pattern();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Lifecycle_Rule_Condition::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 age = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &age_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp created_before = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_created_before()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.BoolValue is_live = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_is_live()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 num_newer_versions = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &num_newer_versions_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string matches_storage_class = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_matches_storage_class()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->matches_storage_class(this->matches_storage_class_size() - 1).data(),
            static_cast<int>(this->matches_storage_class(this->matches_storage_class_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_storage_class"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string matches_pattern = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_matches_pattern()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->matches_pattern().data(), static_cast<int>(this->matches_pattern().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_pattern"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Lifecycle_Rule_Condition::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 age = 1;
  if (this->age() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->age(), output);
  }

  // .google.protobuf.Timestamp created_before = 2;
  if (this->has_created_before()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::created_before(this), output);
  }

  // .google.protobuf.BoolValue is_live = 3;
  if (this->has_is_live()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, HasBitSetters::is_live(this), output);
  }

  // int32 num_newer_versions = 4;
  if (this->num_newer_versions() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->num_newer_versions(), output);
  }

  // repeated string matches_storage_class = 5;
  for (int i = 0, n = this->matches_storage_class_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->matches_storage_class(i).data(), static_cast<int>(this->matches_storage_class(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_storage_class");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      5, this->matches_storage_class(i), output);
  }

  // string matches_pattern = 6;
  if (this->matches_pattern().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->matches_pattern().data(), static_cast<int>(this->matches_pattern().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_pattern");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->matches_pattern(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
}

::google::protobuf::uint8* Bucket_Lifecycle_Rule_Condition::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 age = 1;
  if (this->age() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->age(), target);
  }

  // .google.protobuf.Timestamp created_before = 2;
  if (this->has_created_before()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::created_before(this), target);
  }

  // .google.protobuf.BoolValue is_live = 3;
  if (this->has_is_live()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, HasBitSetters::is_live(this), target);
  }

  // int32 num_newer_versions = 4;
  if (this->num_newer_versions() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->num_newer_versions(), target);
  }

  // repeated string matches_storage_class = 5;
  for (int i = 0, n = this->matches_storage_class_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->matches_storage_class(i).data(), static_cast<int>(this->matches_storage_class(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_storage_class");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(5, this->matches_storage_class(i), target);
  }

  // string matches_pattern = 6;
  if (this->matches_pattern().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->matches_pattern().data(), static_cast<int>(this->matches_pattern().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Lifecycle.Rule.Condition.matches_pattern");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->matches_pattern(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  return target;
}

size_t Bucket_Lifecycle_Rule_Condition::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string matches_storage_class = 5;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->matches_storage_class_size());
  for (int i = 0, n = this->matches_storage_class_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->matches_storage_class(i));
  }

  // string matches_pattern = 6;
  if (this->matches_pattern().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->matches_pattern());
  }

  // .google.protobuf.Timestamp created_before = 2;
  if (this->has_created_before()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *created_before_);
  }

  // .google.protobuf.BoolValue is_live = 3;
  if (this->has_is_live()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *is_live_);
  }

  // int32 age = 1;
  if (this->age() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->age());
  }

  // int32 num_newer_versions = 4;
  if (this->num_newer_versions() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->num_newer_versions());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Lifecycle_Rule_Condition::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Lifecycle_Rule_Condition* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Lifecycle_Rule_Condition>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
    MergeFrom(*source);
  }
}

void Bucket_Lifecycle_Rule_Condition::MergeFrom(const Bucket_Lifecycle_Rule_Condition& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  matches_storage_class_.MergeFrom(from.matches_storage_class_);
  if (from.matches_pattern().size() > 0) {

    matches_pattern_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.matches_pattern_);
  }
  if (from.has_created_before()) {
    mutable_created_before()->::google::protobuf::Timestamp::MergeFrom(from.created_before());
  }
  if (from.has_is_live()) {
    mutable_is_live()->::google::protobuf::BoolValue::MergeFrom(from.is_live());
  }
  if (from.age() != 0) {
    set_age(from.age());
  }
  if (from.num_newer_versions() != 0) {
    set_num_newer_versions(from.num_newer_versions());
  }
}

void Bucket_Lifecycle_Rule_Condition::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Lifecycle_Rule_Condition::CopyFrom(const Bucket_Lifecycle_Rule_Condition& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Lifecycle.Rule.Condition)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Lifecycle_Rule_Condition::IsInitialized() const {
  return true;
}

void Bucket_Lifecycle_Rule_Condition::Swap(Bucket_Lifecycle_Rule_Condition* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Lifecycle_Rule_Condition::InternalSwap(Bucket_Lifecycle_Rule_Condition* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  matches_storage_class_.InternalSwap(CastToBase(&other->matches_storage_class_));
  matches_pattern_.Swap(&other->matches_pattern_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(created_before_, other->created_before_);
  swap(is_live_, other->is_live_);
  swap(age_, other->age_);
  swap(num_newer_versions_, other->num_newer_versions_);
}

::google::protobuf::Metadata Bucket_Lifecycle_Rule_Condition::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Lifecycle_Rule::InitAsDefaultInstance() {
  ::google::storage::v1::_Bucket_Lifecycle_Rule_default_instance_._instance.get_mutable()->action_ = const_cast< ::google::storage::v1::Bucket_Lifecycle_Rule_Action*>(
      ::google::storage::v1::Bucket_Lifecycle_Rule_Action::internal_default_instance());
  ::google::storage::v1::_Bucket_Lifecycle_Rule_default_instance_._instance.get_mutable()->condition_ = const_cast< ::google::storage::v1::Bucket_Lifecycle_Rule_Condition*>(
      ::google::storage::v1::Bucket_Lifecycle_Rule_Condition::internal_default_instance());
}
class Bucket_Lifecycle_Rule::HasBitSetters {
 public:
  static const ::google::storage::v1::Bucket_Lifecycle_Rule_Action& action(const Bucket_Lifecycle_Rule* msg);
  static const ::google::storage::v1::Bucket_Lifecycle_Rule_Condition& condition(const Bucket_Lifecycle_Rule* msg);
};

const ::google::storage::v1::Bucket_Lifecycle_Rule_Action&
Bucket_Lifecycle_Rule::HasBitSetters::action(const Bucket_Lifecycle_Rule* msg) {
  return *msg->action_;
}
const ::google::storage::v1::Bucket_Lifecycle_Rule_Condition&
Bucket_Lifecycle_Rule::HasBitSetters::condition(const Bucket_Lifecycle_Rule* msg) {
  return *msg->condition_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Lifecycle_Rule::kActionFieldNumber;
const int Bucket_Lifecycle_Rule::kConditionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Lifecycle_Rule::Bucket_Lifecycle_Rule()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Lifecycle.Rule)
}
Bucket_Lifecycle_Rule::Bucket_Lifecycle_Rule(const Bucket_Lifecycle_Rule& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_action()) {
    action_ = new ::google::storage::v1::Bucket_Lifecycle_Rule_Action(*from.action_);
  } else {
    action_ = nullptr;
  }
  if (from.has_condition()) {
    condition_ = new ::google::storage::v1::Bucket_Lifecycle_Rule_Condition(*from.condition_);
  } else {
    condition_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Lifecycle.Rule)
}

void Bucket_Lifecycle_Rule::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::memset(&action_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&condition_) -
      reinterpret_cast<char*>(&action_)) + sizeof(condition_));
}

Bucket_Lifecycle_Rule::~Bucket_Lifecycle_Rule() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Lifecycle.Rule)
  SharedDtor();
}

void Bucket_Lifecycle_Rule::SharedDtor() {
  if (this != internal_default_instance()) delete action_;
  if (this != internal_default_instance()) delete condition_;
}

void Bucket_Lifecycle_Rule::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Lifecycle_Rule& Bucket_Lifecycle_Rule::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Lifecycle_Rule_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Lifecycle_Rule::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Lifecycle.Rule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && action_ != nullptr) {
    delete action_;
  }
  action_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && condition_ != nullptr) {
    delete condition_;
  }
  condition_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Lifecycle_Rule::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Lifecycle_Rule*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // .google.storage.v1.Bucket.Lifecycle.Rule.Action action = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Lifecycle_Rule_Action::_InternalParse;
        object = msg->mutable_action();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Bucket.Lifecycle.Rule.Condition condition = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Lifecycle_Rule_Condition::_InternalParse;
        object = msg->mutable_condition();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Lifecycle_Rule::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Lifecycle.Rule)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.storage.v1.Bucket.Lifecycle.Rule.Action action = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_action()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Lifecycle.Rule.Condition condition = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_condition()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Lifecycle.Rule)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Lifecycle.Rule)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Lifecycle_Rule::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Lifecycle.Rule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.storage.v1.Bucket.Lifecycle.Rule.Action action = 1;
  if (this->has_action()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::action(this), output);
  }

  // .google.storage.v1.Bucket.Lifecycle.Rule.Condition condition = 2;
  if (this->has_condition()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::condition(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Lifecycle.Rule)
}

::google::protobuf::uint8* Bucket_Lifecycle_Rule::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Lifecycle.Rule)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.storage.v1.Bucket.Lifecycle.Rule.Action action = 1;
  if (this->has_action()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::action(this), target);
  }

  // .google.storage.v1.Bucket.Lifecycle.Rule.Condition condition = 2;
  if (this->has_condition()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::condition(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Lifecycle.Rule)
  return target;
}

size_t Bucket_Lifecycle_Rule::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Lifecycle.Rule)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .google.storage.v1.Bucket.Lifecycle.Rule.Action action = 1;
  if (this->has_action()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *action_);
  }

  // .google.storage.v1.Bucket.Lifecycle.Rule.Condition condition = 2;
  if (this->has_condition()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *condition_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Lifecycle_Rule::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Lifecycle.Rule)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Lifecycle_Rule* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Lifecycle_Rule>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Lifecycle.Rule)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Lifecycle.Rule)
    MergeFrom(*source);
  }
}

void Bucket_Lifecycle_Rule::MergeFrom(const Bucket_Lifecycle_Rule& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Lifecycle.Rule)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_action()) {
    mutable_action()->::google::storage::v1::Bucket_Lifecycle_Rule_Action::MergeFrom(from.action());
  }
  if (from.has_condition()) {
    mutable_condition()->::google::storage::v1::Bucket_Lifecycle_Rule_Condition::MergeFrom(from.condition());
  }
}

void Bucket_Lifecycle_Rule::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Lifecycle.Rule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Lifecycle_Rule::CopyFrom(const Bucket_Lifecycle_Rule& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Lifecycle.Rule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Lifecycle_Rule::IsInitialized() const {
  return true;
}

void Bucket_Lifecycle_Rule::Swap(Bucket_Lifecycle_Rule* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Lifecycle_Rule::InternalSwap(Bucket_Lifecycle_Rule* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(action_, other->action_);
  swap(condition_, other->condition_);
}

::google::protobuf::Metadata Bucket_Lifecycle_Rule::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Lifecycle::InitAsDefaultInstance() {
}
class Bucket_Lifecycle::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Lifecycle::kRuleFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Lifecycle::Bucket_Lifecycle()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Lifecycle)
}
Bucket_Lifecycle::Bucket_Lifecycle(const Bucket_Lifecycle& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      rule_(from.rule_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Lifecycle)
}

void Bucket_Lifecycle::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
}

Bucket_Lifecycle::~Bucket_Lifecycle() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Lifecycle)
  SharedDtor();
}

void Bucket_Lifecycle::SharedDtor() {
}

void Bucket_Lifecycle::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Lifecycle& Bucket_Lifecycle::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Lifecycle_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Lifecycle::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Lifecycle)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  rule_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Lifecycle::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Lifecycle*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.Bucket.Lifecycle.Rule rule = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::Bucket_Lifecycle_Rule::_InternalParse;
          object = msg->add_rule();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Lifecycle::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Lifecycle)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.Bucket.Lifecycle.Rule rule = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_rule()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Lifecycle)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Lifecycle)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Lifecycle::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Lifecycle)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.Bucket.Lifecycle.Rule rule = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->rule_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->rule(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Lifecycle)
}

::google::protobuf::uint8* Bucket_Lifecycle::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Lifecycle)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.Bucket.Lifecycle.Rule rule = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->rule_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->rule(static_cast<int>(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Lifecycle)
  return target;
}

size_t Bucket_Lifecycle::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Lifecycle)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.Bucket.Lifecycle.Rule rule = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->rule_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->rule(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Lifecycle::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Lifecycle)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Lifecycle* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Lifecycle>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Lifecycle)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Lifecycle)
    MergeFrom(*source);
  }
}

void Bucket_Lifecycle::MergeFrom(const Bucket_Lifecycle& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Lifecycle)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  rule_.MergeFrom(from.rule_);
}

void Bucket_Lifecycle::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Lifecycle)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Lifecycle::CopyFrom(const Bucket_Lifecycle& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Lifecycle)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Lifecycle::IsInitialized() const {
  return true;
}

void Bucket_Lifecycle::Swap(Bucket_Lifecycle* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Lifecycle::InternalSwap(Bucket_Lifecycle* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&rule_)->InternalSwap(CastToBase(&other->rule_));
}

::google::protobuf::Metadata Bucket_Lifecycle::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Logging::InitAsDefaultInstance() {
}
class Bucket_Logging::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Logging::kLogBucketFieldNumber;
const int Bucket_Logging::kLogObjectPrefixFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Logging::Bucket_Logging()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Logging)
}
Bucket_Logging::Bucket_Logging(const Bucket_Logging& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  log_bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.log_bucket().size() > 0) {
    log_bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_bucket_);
  }
  log_object_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.log_object_prefix().size() > 0) {
    log_object_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_object_prefix_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Logging)
}

void Bucket_Logging::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  log_bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  log_object_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Bucket_Logging::~Bucket_Logging() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Logging)
  SharedDtor();
}

void Bucket_Logging::SharedDtor() {
  log_bucket_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  log_object_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Bucket_Logging::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Logging& Bucket_Logging::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Logging_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Logging::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Logging)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  log_bucket_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  log_object_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Logging::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Logging*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string log_bucket = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Logging.log_bucket");
        object = msg->mutable_log_bucket();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string log_object_prefix = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Logging.log_object_prefix");
        object = msg->mutable_log_object_prefix();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Logging::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Logging)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string log_bucket = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_log_bucket()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->log_bucket().data(), static_cast<int>(this->log_bucket().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Logging.log_bucket"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string log_object_prefix = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_log_object_prefix()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->log_object_prefix().data(), static_cast<int>(this->log_object_prefix().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Logging.log_object_prefix"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Logging)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Logging)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Logging::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Logging)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string log_bucket = 1;
  if (this->log_bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->log_bucket().data(), static_cast<int>(this->log_bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Logging.log_bucket");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->log_bucket(), output);
  }

  // string log_object_prefix = 2;
  if (this->log_object_prefix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->log_object_prefix().data(), static_cast<int>(this->log_object_prefix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Logging.log_object_prefix");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->log_object_prefix(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Logging)
}

::google::protobuf::uint8* Bucket_Logging::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Logging)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string log_bucket = 1;
  if (this->log_bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->log_bucket().data(), static_cast<int>(this->log_bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Logging.log_bucket");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->log_bucket(), target);
  }

  // string log_object_prefix = 2;
  if (this->log_object_prefix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->log_object_prefix().data(), static_cast<int>(this->log_object_prefix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Logging.log_object_prefix");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->log_object_prefix(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Logging)
  return target;
}

size_t Bucket_Logging::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Logging)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string log_bucket = 1;
  if (this->log_bucket().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->log_bucket());
  }

  // string log_object_prefix = 2;
  if (this->log_object_prefix().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->log_object_prefix());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Logging::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Logging)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Logging* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Logging>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Logging)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Logging)
    MergeFrom(*source);
  }
}

void Bucket_Logging::MergeFrom(const Bucket_Logging& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Logging)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.log_bucket().size() > 0) {

    log_bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_bucket_);
  }
  if (from.log_object_prefix().size() > 0) {

    log_object_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.log_object_prefix_);
  }
}

void Bucket_Logging::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Logging)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Logging::CopyFrom(const Bucket_Logging& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Logging)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Logging::IsInitialized() const {
  return true;
}

void Bucket_Logging::Swap(Bucket_Logging* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Logging::InternalSwap(Bucket_Logging* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  log_bucket_.Swap(&other->log_bucket_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  log_object_prefix_.Swap(&other->log_object_prefix_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Bucket_Logging::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_RetentionPolicy::InitAsDefaultInstance() {
  ::google::storage::v1::_Bucket_RetentionPolicy_default_instance_._instance.get_mutable()->effective_time_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
}
class Bucket_RetentionPolicy::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& effective_time(const Bucket_RetentionPolicy* msg);
};

const ::google::protobuf::Timestamp&
Bucket_RetentionPolicy::HasBitSetters::effective_time(const Bucket_RetentionPolicy* msg) {
  return *msg->effective_time_;
}
void Bucket_RetentionPolicy::clear_effective_time() {
  if (GetArenaNoVirtual() == nullptr && effective_time_ != nullptr) {
    delete effective_time_;
  }
  effective_time_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_RetentionPolicy::kEffectiveTimeFieldNumber;
const int Bucket_RetentionPolicy::kIsLockedFieldNumber;
const int Bucket_RetentionPolicy::kRetentionPeriodFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_RetentionPolicy::Bucket_RetentionPolicy()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.RetentionPolicy)
}
Bucket_RetentionPolicy::Bucket_RetentionPolicy(const Bucket_RetentionPolicy& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_effective_time()) {
    effective_time_ = new ::google::protobuf::Timestamp(*from.effective_time_);
  } else {
    effective_time_ = nullptr;
  }
  ::memcpy(&retention_period_, &from.retention_period_,
    static_cast<size_t>(reinterpret_cast<char*>(&is_locked_) -
    reinterpret_cast<char*>(&retention_period_)) + sizeof(is_locked_));
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.RetentionPolicy)
}

void Bucket_RetentionPolicy::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  ::memset(&effective_time_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_locked_) -
      reinterpret_cast<char*>(&effective_time_)) + sizeof(is_locked_));
}

Bucket_RetentionPolicy::~Bucket_RetentionPolicy() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.RetentionPolicy)
  SharedDtor();
}

void Bucket_RetentionPolicy::SharedDtor() {
  if (this != internal_default_instance()) delete effective_time_;
}

void Bucket_RetentionPolicy::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_RetentionPolicy& Bucket_RetentionPolicy::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_RetentionPolicy_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_RetentionPolicy::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.RetentionPolicy)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && effective_time_ != nullptr) {
    delete effective_time_;
  }
  effective_time_ = nullptr;
  ::memset(&retention_period_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&is_locked_) -
      reinterpret_cast<char*>(&retention_period_)) + sizeof(is_locked_));
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_RetentionPolicy::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_RetentionPolicy*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // .google.protobuf.Timestamp effective_time = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_effective_time();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // bool is_locked = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
        msg->set_is_locked(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // int64 retention_period = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
        msg->set_retention_period(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_RetentionPolicy::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.RetentionPolicy)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Timestamp effective_time = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_effective_time()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool is_locked = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &is_locked_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 retention_period = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &retention_period_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.RetentionPolicy)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.RetentionPolicy)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_RetentionPolicy::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.RetentionPolicy)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Timestamp effective_time = 1;
  if (this->has_effective_time()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::effective_time(this), output);
  }

  // bool is_locked = 2;
  if (this->is_locked() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->is_locked(), output);
  }

  // int64 retention_period = 3;
  if (this->retention_period() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->retention_period(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.RetentionPolicy)
}

::google::protobuf::uint8* Bucket_RetentionPolicy::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.RetentionPolicy)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Timestamp effective_time = 1;
  if (this->has_effective_time()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::effective_time(this), target);
  }

  // bool is_locked = 2;
  if (this->is_locked() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->is_locked(), target);
  }

  // int64 retention_period = 3;
  if (this->retention_period() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->retention_period(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.RetentionPolicy)
  return target;
}

size_t Bucket_RetentionPolicy::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.RetentionPolicy)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .google.protobuf.Timestamp effective_time = 1;
  if (this->has_effective_time()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *effective_time_);
  }

  // int64 retention_period = 3;
  if (this->retention_period() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->retention_period());
  }

  // bool is_locked = 2;
  if (this->is_locked() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_RetentionPolicy::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.RetentionPolicy)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_RetentionPolicy* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_RetentionPolicy>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.RetentionPolicy)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.RetentionPolicy)
    MergeFrom(*source);
  }
}

void Bucket_RetentionPolicy::MergeFrom(const Bucket_RetentionPolicy& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.RetentionPolicy)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_effective_time()) {
    mutable_effective_time()->::google::protobuf::Timestamp::MergeFrom(from.effective_time());
  }
  if (from.retention_period() != 0) {
    set_retention_period(from.retention_period());
  }
  if (from.is_locked() != 0) {
    set_is_locked(from.is_locked());
  }
}

void Bucket_RetentionPolicy::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.RetentionPolicy)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_RetentionPolicy::CopyFrom(const Bucket_RetentionPolicy& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.RetentionPolicy)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_RetentionPolicy::IsInitialized() const {
  return true;
}

void Bucket_RetentionPolicy::Swap(Bucket_RetentionPolicy* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_RetentionPolicy::InternalSwap(Bucket_RetentionPolicy* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(effective_time_, other->effective_time_);
  swap(retention_period_, other->retention_period_);
  swap(is_locked_, other->is_locked_);
}

::google::protobuf::Metadata Bucket_RetentionPolicy::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Versioning::InitAsDefaultInstance() {
}
class Bucket_Versioning::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Versioning::kEnabledFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Versioning::Bucket_Versioning()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Versioning)
}
Bucket_Versioning::Bucket_Versioning(const Bucket_Versioning& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  enabled_ = from.enabled_;
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Versioning)
}

void Bucket_Versioning::SharedCtor() {
  enabled_ = false;
}

Bucket_Versioning::~Bucket_Versioning() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Versioning)
  SharedDtor();
}

void Bucket_Versioning::SharedDtor() {
}

void Bucket_Versioning::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Versioning& Bucket_Versioning::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Versioning_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Versioning::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Versioning)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  enabled_ = false;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Versioning::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Versioning*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // bool enabled = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
        msg->set_enabled(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Versioning::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Versioning)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bool enabled = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &enabled_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Versioning)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Versioning)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Versioning::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Versioning)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enabled = 1;
  if (this->enabled() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->enabled(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Versioning)
}

::google::protobuf::uint8* Bucket_Versioning::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Versioning)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bool enabled = 1;
  if (this->enabled() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->enabled(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Versioning)
  return target;
}

size_t Bucket_Versioning::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Versioning)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bool enabled = 1;
  if (this->enabled() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Versioning::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Versioning)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Versioning* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Versioning>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Versioning)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Versioning)
    MergeFrom(*source);
  }
}

void Bucket_Versioning::MergeFrom(const Bucket_Versioning& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Versioning)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.enabled() != 0) {
    set_enabled(from.enabled());
  }
}

void Bucket_Versioning::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Versioning)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Versioning::CopyFrom(const Bucket_Versioning& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Versioning)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Versioning::IsInitialized() const {
  return true;
}

void Bucket_Versioning::Swap(Bucket_Versioning* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Versioning::InternalSwap(Bucket_Versioning* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(enabled_, other->enabled_);
}

::google::protobuf::Metadata Bucket_Versioning::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Bucket_Website::InitAsDefaultInstance() {
}
class Bucket_Website::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket_Website::kMainPageSuffixFieldNumber;
const int Bucket_Website::kNotFoundPageFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket_Website::Bucket_Website()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket.Website)
}
Bucket_Website::Bucket_Website(const Bucket_Website& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  main_page_suffix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.main_page_suffix().size() > 0) {
    main_page_suffix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.main_page_suffix_);
  }
  not_found_page_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.not_found_page().size() > 0) {
    not_found_page_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.not_found_page_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket.Website)
}

void Bucket_Website::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  main_page_suffix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  not_found_page_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Bucket_Website::~Bucket_Website() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket.Website)
  SharedDtor();
}

void Bucket_Website::SharedDtor() {
  main_page_suffix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  not_found_page_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Bucket_Website::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket_Website& Bucket_Website::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_Website_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket_Website::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket.Website)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  main_page_suffix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  not_found_page_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket_Website::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket_Website*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string main_page_suffix = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Website.main_page_suffix");
        object = msg->mutable_main_page_suffix();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string not_found_page = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.Website.not_found_page");
        object = msg->mutable_not_found_page();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_Website::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket.Website)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string main_page_suffix = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_main_page_suffix()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->main_page_suffix().data(), static_cast<int>(this->main_page_suffix().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Website.main_page_suffix"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string not_found_page = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_not_found_page()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->not_found_page().data(), static_cast<int>(this->not_found_page().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.Website.not_found_page"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket.Website)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket.Website)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket_Website::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket.Website)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string main_page_suffix = 1;
  if (this->main_page_suffix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->main_page_suffix().data(), static_cast<int>(this->main_page_suffix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Website.main_page_suffix");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->main_page_suffix(), output);
  }

  // string not_found_page = 2;
  if (this->not_found_page().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->not_found_page().data(), static_cast<int>(this->not_found_page().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Website.not_found_page");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->not_found_page(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket.Website)
}

::google::protobuf::uint8* Bucket_Website::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket.Website)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string main_page_suffix = 1;
  if (this->main_page_suffix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->main_page_suffix().data(), static_cast<int>(this->main_page_suffix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Website.main_page_suffix");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->main_page_suffix(), target);
  }

  // string not_found_page = 2;
  if (this->not_found_page().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->not_found_page().data(), static_cast<int>(this->not_found_page().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.Website.not_found_page");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->not_found_page(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket.Website)
  return target;
}

size_t Bucket_Website::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket.Website)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string main_page_suffix = 1;
  if (this->main_page_suffix().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->main_page_suffix());
  }

  // string not_found_page = 2;
  if (this->not_found_page().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->not_found_page());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket_Website::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket.Website)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket_Website* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket_Website>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket.Website)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket.Website)
    MergeFrom(*source);
  }
}

void Bucket_Website::MergeFrom(const Bucket_Website& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket.Website)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.main_page_suffix().size() > 0) {

    main_page_suffix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.main_page_suffix_);
  }
  if (from.not_found_page().size() > 0) {

    not_found_page_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.not_found_page_);
  }
}

void Bucket_Website::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket.Website)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket_Website::CopyFrom(const Bucket_Website& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket.Website)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket_Website::IsInitialized() const {
  return true;
}

void Bucket_Website::Swap(Bucket_Website* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket_Website::InternalSwap(Bucket_Website* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  main_page_suffix_.Swap(&other->main_page_suffix_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  not_found_page_.Swap(&other->not_found_page_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Bucket_Website::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

Bucket_LabelsEntry_DoNotUse::Bucket_LabelsEntry_DoNotUse() {}
Bucket_LabelsEntry_DoNotUse::Bucket_LabelsEntry_DoNotUse(::google::protobuf::Arena* arena)
    : SuperType(arena) {}
void Bucket_LabelsEntry_DoNotUse::MergeFrom(const Bucket_LabelsEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata Bucket_LabelsEntry_DoNotUse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[13];
}
void Bucket_LabelsEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket_LabelsEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
  using MF = ::google::protobuf::internal::MapField<
      Bucket_LabelsEntry_DoNotUse, EntryKeyType, EntryValueType,
      kEntryKeyFieldType, kEntryValueFieldType,
      kEntryDefaultEnumValue>;
  auto mf = static_cast<MF*>(object);
  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
#define DO_(x) if (!(x)) return false
  DO_(parser.ParseMap(begin, end));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.key().data(), static_cast<int>(parser.key().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Bucket.LabelsEntry.key"));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.value().data(), static_cast<int>(parser.value().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Bucket.LabelsEntry.value"));
#undef DO_
  return true;
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER


// ===================================================================

void Bucket::InitAsDefaultInstance() {
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->lifecycle_ = const_cast< ::google::storage::v1::Bucket_Lifecycle*>(
      ::google::storage::v1::Bucket_Lifecycle::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->time_created_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->updated_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->website_ = const_cast< ::google::storage::v1::Bucket_Website*>(
      ::google::storage::v1::Bucket_Website::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->versioning_ = const_cast< ::google::storage::v1::Bucket_Versioning*>(
      ::google::storage::v1::Bucket_Versioning::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->logging_ = const_cast< ::google::storage::v1::Bucket_Logging*>(
      ::google::storage::v1::Bucket_Logging::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->owner_ = const_cast< ::google::storage::v1::Owner*>(
      ::google::storage::v1::Owner::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->encryption_ = const_cast< ::google::storage::v1::Bucket_Encryption*>(
      ::google::storage::v1::Bucket_Encryption::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->billing_ = const_cast< ::google::storage::v1::Bucket_Billing*>(
      ::google::storage::v1::Bucket_Billing::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->retention_policy_ = const_cast< ::google::storage::v1::Bucket_RetentionPolicy*>(
      ::google::storage::v1::Bucket_RetentionPolicy::internal_default_instance());
  ::google::storage::v1::_Bucket_default_instance_._instance.get_mutable()->iam_configuration_ = const_cast< ::google::storage::v1::Bucket_IamConfiguration*>(
      ::google::storage::v1::Bucket_IamConfiguration::internal_default_instance());
}
class Bucket::HasBitSetters {
 public:
  static const ::google::storage::v1::Bucket_Lifecycle& lifecycle(const Bucket* msg);
  static const ::google::protobuf::Timestamp& time_created(const Bucket* msg);
  static const ::google::protobuf::Timestamp& updated(const Bucket* msg);
  static const ::google::storage::v1::Bucket_Website& website(const Bucket* msg);
  static const ::google::storage::v1::Bucket_Versioning& versioning(const Bucket* msg);
  static const ::google::storage::v1::Bucket_Logging& logging(const Bucket* msg);
  static const ::google::storage::v1::Owner& owner(const Bucket* msg);
  static const ::google::storage::v1::Bucket_Encryption& encryption(const Bucket* msg);
  static const ::google::storage::v1::Bucket_Billing& billing(const Bucket* msg);
  static const ::google::storage::v1::Bucket_RetentionPolicy& retention_policy(const Bucket* msg);
  static const ::google::storage::v1::Bucket_IamConfiguration& iam_configuration(const Bucket* msg);
};

const ::google::storage::v1::Bucket_Lifecycle&
Bucket::HasBitSetters::lifecycle(const Bucket* msg) {
  return *msg->lifecycle_;
}
const ::google::protobuf::Timestamp&
Bucket::HasBitSetters::time_created(const Bucket* msg) {
  return *msg->time_created_;
}
const ::google::protobuf::Timestamp&
Bucket::HasBitSetters::updated(const Bucket* msg) {
  return *msg->updated_;
}
const ::google::storage::v1::Bucket_Website&
Bucket::HasBitSetters::website(const Bucket* msg) {
  return *msg->website_;
}
const ::google::storage::v1::Bucket_Versioning&
Bucket::HasBitSetters::versioning(const Bucket* msg) {
  return *msg->versioning_;
}
const ::google::storage::v1::Bucket_Logging&
Bucket::HasBitSetters::logging(const Bucket* msg) {
  return *msg->logging_;
}
const ::google::storage::v1::Owner&
Bucket::HasBitSetters::owner(const Bucket* msg) {
  return *msg->owner_;
}
const ::google::storage::v1::Bucket_Encryption&
Bucket::HasBitSetters::encryption(const Bucket* msg) {
  return *msg->encryption_;
}
const ::google::storage::v1::Bucket_Billing&
Bucket::HasBitSetters::billing(const Bucket* msg) {
  return *msg->billing_;
}
const ::google::storage::v1::Bucket_RetentionPolicy&
Bucket::HasBitSetters::retention_policy(const Bucket* msg) {
  return *msg->retention_policy_;
}
const ::google::storage::v1::Bucket_IamConfiguration&
Bucket::HasBitSetters::iam_configuration(const Bucket* msg) {
  return *msg->iam_configuration_;
}
void Bucket::clear_time_created() {
  if (GetArenaNoVirtual() == nullptr && time_created_ != nullptr) {
    delete time_created_;
  }
  time_created_ = nullptr;
}
void Bucket::clear_updated() {
  if (GetArenaNoVirtual() == nullptr && updated_ != nullptr) {
    delete updated_;
  }
  updated_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Bucket::kAclFieldNumber;
const int Bucket::kDefaultObjectAclFieldNumber;
const int Bucket::kLifecycleFieldNumber;
const int Bucket::kTimeCreatedFieldNumber;
const int Bucket::kIdFieldNumber;
const int Bucket::kNameFieldNumber;
const int Bucket::kProjectNumberFieldNumber;
const int Bucket::kMetagenerationFieldNumber;
const int Bucket::kCorsFieldNumber;
const int Bucket::kLocationFieldNumber;
const int Bucket::kStorageClassFieldNumber;
const int Bucket::kEtagFieldNumber;
const int Bucket::kUpdatedFieldNumber;
const int Bucket::kDefaultEventBasedHoldFieldNumber;
const int Bucket::kLabelsFieldNumber;
const int Bucket::kWebsiteFieldNumber;
const int Bucket::kVersioningFieldNumber;
const int Bucket::kLoggingFieldNumber;
const int Bucket::kOwnerFieldNumber;
const int Bucket::kEncryptionFieldNumber;
const int Bucket::kBillingFieldNumber;
const int Bucket::kRetentionPolicyFieldNumber;
const int Bucket::kLocationTypeFieldNumber;
const int Bucket::kIamConfigurationFieldNumber;
const int Bucket::kZoneAffinityFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Bucket::Bucket()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Bucket)
}
Bucket::Bucket(const Bucket& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      acl_(from.acl_),
      default_object_acl_(from.default_object_acl_),
      cors_(from.cors_),
      zone_affinity_(from.zone_affinity_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  labels_.MergeFrom(from.labels_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.name().size() > 0) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  location_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.location().size() > 0) {
    location_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.location_);
  }
  storage_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.storage_class().size() > 0) {
    storage_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.storage_class_);
  }
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.etag().size() > 0) {
    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  location_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.location_type().size() > 0) {
    location_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.location_type_);
  }
  if (from.has_lifecycle()) {
    lifecycle_ = new ::google::storage::v1::Bucket_Lifecycle(*from.lifecycle_);
  } else {
    lifecycle_ = nullptr;
  }
  if (from.has_time_created()) {
    time_created_ = new ::google::protobuf::Timestamp(*from.time_created_);
  } else {
    time_created_ = nullptr;
  }
  if (from.has_updated()) {
    updated_ = new ::google::protobuf::Timestamp(*from.updated_);
  } else {
    updated_ = nullptr;
  }
  if (from.has_website()) {
    website_ = new ::google::storage::v1::Bucket_Website(*from.website_);
  } else {
    website_ = nullptr;
  }
  if (from.has_versioning()) {
    versioning_ = new ::google::storage::v1::Bucket_Versioning(*from.versioning_);
  } else {
    versioning_ = nullptr;
  }
  if (from.has_logging()) {
    logging_ = new ::google::storage::v1::Bucket_Logging(*from.logging_);
  } else {
    logging_ = nullptr;
  }
  if (from.has_owner()) {
    owner_ = new ::google::storage::v1::Owner(*from.owner_);
  } else {
    owner_ = nullptr;
  }
  if (from.has_encryption()) {
    encryption_ = new ::google::storage::v1::Bucket_Encryption(*from.encryption_);
  } else {
    encryption_ = nullptr;
  }
  if (from.has_billing()) {
    billing_ = new ::google::storage::v1::Bucket_Billing(*from.billing_);
  } else {
    billing_ = nullptr;
  }
  if (from.has_retention_policy()) {
    retention_policy_ = new ::google::storage::v1::Bucket_RetentionPolicy(*from.retention_policy_);
  } else {
    retention_policy_ = nullptr;
  }
  if (from.has_iam_configuration()) {
    iam_configuration_ = new ::google::storage::v1::Bucket_IamConfiguration(*from.iam_configuration_);
  } else {
    iam_configuration_ = nullptr;
  }
  ::memcpy(&project_number_, &from.project_number_,
    static_cast<size_t>(reinterpret_cast<char*>(&default_event_based_hold_) -
    reinterpret_cast<char*>(&project_number_)) + sizeof(default_event_based_hold_));
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Bucket)
}

void Bucket::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Bucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  location_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  location_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&lifecycle_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&default_event_based_hold_) -
      reinterpret_cast<char*>(&lifecycle_)) + sizeof(default_event_based_hold_));
}

Bucket::~Bucket() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Bucket)
  SharedDtor();
}

void Bucket::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  location_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  location_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete lifecycle_;
  if (this != internal_default_instance()) delete time_created_;
  if (this != internal_default_instance()) delete updated_;
  if (this != internal_default_instance()) delete website_;
  if (this != internal_default_instance()) delete versioning_;
  if (this != internal_default_instance()) delete logging_;
  if (this != internal_default_instance()) delete owner_;
  if (this != internal_default_instance()) delete encryption_;
  if (this != internal_default_instance()) delete billing_;
  if (this != internal_default_instance()) delete retention_policy_;
  if (this != internal_default_instance()) delete iam_configuration_;
}

void Bucket::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Bucket& Bucket::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Bucket_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Bucket::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Bucket)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  acl_.Clear();
  default_object_acl_.Clear();
  cors_.Clear();
  labels_.Clear();
  zone_affinity_.Clear();
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  location_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  location_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && lifecycle_ != nullptr) {
    delete lifecycle_;
  }
  lifecycle_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && time_created_ != nullptr) {
    delete time_created_;
  }
  time_created_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && updated_ != nullptr) {
    delete updated_;
  }
  updated_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && website_ != nullptr) {
    delete website_;
  }
  website_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && versioning_ != nullptr) {
    delete versioning_;
  }
  versioning_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && logging_ != nullptr) {
    delete logging_;
  }
  logging_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && owner_ != nullptr) {
    delete owner_;
  }
  owner_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && encryption_ != nullptr) {
    delete encryption_;
  }
  encryption_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && billing_ != nullptr) {
    delete billing_;
  }
  billing_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && retention_policy_ != nullptr) {
    delete retention_policy_;
  }
  retention_policy_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && iam_configuration_ != nullptr) {
    delete iam_configuration_;
  }
  iam_configuration_ = nullptr;
  ::memset(&project_number_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&default_event_based_hold_) -
      reinterpret_cast<char*>(&project_number_)) + sizeof(default_event_based_hold_));
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Bucket::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Bucket*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.BucketAccessControl acl = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::BucketAccessControl::_InternalParse;
          object = msg->add_acl();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      // repeated .google.storage.v1.ObjectAccessControl default_object_acl = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::ObjectAccessControl::_InternalParse;
          object = msg->add_default_object_acl();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 18 && (ptr += 1));
        break;
      }
      // .google.storage.v1.Bucket.Lifecycle lifecycle = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Lifecycle::_InternalParse;
        object = msg->mutable_lifecycle();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.protobuf.Timestamp time_created = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_time_created();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string id = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string name = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.name");
        object = msg->mutable_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // int64 project_number = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 56) goto handle_unusual;
        msg->set_project_number(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // int64 metageneration = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 64) goto handle_unusual;
        msg->set_metageneration(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // repeated .google.storage.v1.Bucket.Cors cors = 9;
      case 9: {
        if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::Bucket_Cors::_InternalParse;
          object = msg->add_cors();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 74 && (ptr += 1));
        break;
      }
      // string location = 10;
      case 10: {
        if (static_cast<::google::protobuf::uint8>(tag) != 82) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.location");
        object = msg->mutable_location();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string storage_class = 11;
      case 11: {
        if (static_cast<::google::protobuf::uint8>(tag) != 90) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.storage_class");
        object = msg->mutable_storage_class();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string etag = 12;
      case 12: {
        if (static_cast<::google::protobuf::uint8>(tag) != 98) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.etag");
        object = msg->mutable_etag();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Timestamp updated = 13;
      case 13: {
        if (static_cast<::google::protobuf::uint8>(tag) != 106) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_updated();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // bool default_event_based_hold = 14;
      case 14: {
        if (static_cast<::google::protobuf::uint8>(tag) != 112) goto handle_unusual;
        msg->set_default_event_based_hold(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // map<string, string> labels = 15;
      case 15: {
        if (static_cast<::google::protobuf::uint8>(tag) != 122) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
          auto parse_map = ::google::storage::v1::Bucket_LabelsEntry_DoNotUse::_ParseMap;
          ctx->extra_parse_data().payload.clear();
          ctx->extra_parse_data().parse_map = parse_map;
          object = &msg->labels_;
          if (size > end - ptr) goto len_delim_till_end;
          auto newend = ptr + size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
          ptr = newend;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 122 && (ptr += 1));
        break;
      }
      // .google.storage.v1.Bucket.Website website = 16;
      case 16: {
        if (static_cast<::google::protobuf::uint8>(tag) != 130) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Website::_InternalParse;
        object = msg->mutable_website();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Bucket.Versioning versioning = 17;
      case 17: {
        if (static_cast<::google::protobuf::uint8>(tag) != 138) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Versioning::_InternalParse;
        object = msg->mutable_versioning();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Bucket.Logging logging = 18;
      case 18: {
        if (static_cast<::google::protobuf::uint8>(tag) != 146) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Logging::_InternalParse;
        object = msg->mutable_logging();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Owner owner = 19;
      case 19: {
        if (static_cast<::google::protobuf::uint8>(tag) != 154) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Owner::_InternalParse;
        object = msg->mutable_owner();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Bucket.Encryption encryption = 20;
      case 20: {
        if (static_cast<::google::protobuf::uint8>(tag) != 162) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Encryption::_InternalParse;
        object = msg->mutable_encryption();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Bucket.Billing billing = 21;
      case 21: {
        if (static_cast<::google::protobuf::uint8>(tag) != 170) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_Billing::_InternalParse;
        object = msg->mutable_billing();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Bucket.RetentionPolicy retention_policy = 22;
      case 22: {
        if (static_cast<::google::protobuf::uint8>(tag) != 178) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_RetentionPolicy::_InternalParse;
        object = msg->mutable_retention_policy();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string location_type = 23;
      case 23: {
        if (static_cast<::google::protobuf::uint8>(tag) != 186) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.location_type");
        object = msg->mutable_location_type();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.storage.v1.Bucket.IamConfiguration iam_configuration = 24;
      case 24: {
        if (static_cast<::google::protobuf::uint8>(tag) != 194) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Bucket_IamConfiguration::_InternalParse;
        object = msg->mutable_iam_configuration();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // repeated string zone_affinity = 25;
      case 25: {
        if (static_cast<::google::protobuf::uint8>(tag) != 202) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.Bucket.zone_affinity");
          object = msg->add_zone_affinity();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 65535) == 458 && (ptr += 2));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Bucket::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Bucket)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.BucketAccessControl acl = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_acl()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .google.storage.v1.ObjectAccessControl default_object_acl = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_default_object_acl()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Lifecycle lifecycle = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_lifecycle()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp time_created = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_time_created()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string name = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->name().data(), static_cast<int>(this->name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 project_number = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (56 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &project_number_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 metageneration = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (64 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &metageneration_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .google.storage.v1.Bucket.Cors cors = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_cors()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string location = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (82 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_location()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->location().data(), static_cast<int>(this->location().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.location"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string storage_class = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (90 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_storage_class()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->storage_class().data(), static_cast<int>(this->storage_class().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.storage_class"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string etag = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (98 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_etag()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->etag().data(), static_cast<int>(this->etag().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.etag"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp updated = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (106 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_updated()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool default_event_based_hold = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (112 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &default_event_based_hold_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, string> labels = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (122 & 0xFF)) {
          Bucket_LabelsEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              Bucket_LabelsEntry_DoNotUse,
              ::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(&labels_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.LabelsEntry.key"));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.LabelsEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Website website = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (130 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_website()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Versioning versioning = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (138 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_versioning()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Logging logging = 18;
      case 18: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (146 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_logging()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Owner owner = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (154 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_owner()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Encryption encryption = 20;
      case 20: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (162 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_encryption()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.Billing billing = 21;
      case 21: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (170 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_billing()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.RetentionPolicy retention_policy = 22;
      case 22: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (178 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_retention_policy()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string location_type = 23;
      case 23: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (186 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_location_type()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->location_type().data(), static_cast<int>(this->location_type().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.location_type"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Bucket.IamConfiguration iam_configuration = 24;
      case 24: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (194 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_iam_configuration()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string zone_affinity = 25;
      case 25: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (202 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_zone_affinity()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->zone_affinity(this->zone_affinity_size() - 1).data(),
            static_cast<int>(this->zone_affinity(this->zone_affinity_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Bucket.zone_affinity"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Bucket)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Bucket)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Bucket::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Bucket)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.BucketAccessControl acl = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->acl_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->acl(static_cast<int>(i)),
      output);
  }

  // repeated .google.storage.v1.ObjectAccessControl default_object_acl = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->default_object_acl_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2,
      this->default_object_acl(static_cast<int>(i)),
      output);
  }

  // .google.storage.v1.Bucket.Lifecycle lifecycle = 3;
  if (this->has_lifecycle()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, HasBitSetters::lifecycle(this), output);
  }

  // .google.protobuf.Timestamp time_created = 4;
  if (this->has_time_created()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::time_created(this), output);
  }

  // string id = 5;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->id(), output);
  }

  // string name = 6;
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->name(), output);
  }

  // int64 project_number = 7;
  if (this->project_number() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(7, this->project_number(), output);
  }

  // int64 metageneration = 8;
  if (this->metageneration() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(8, this->metageneration(), output);
  }

  // repeated .google.storage.v1.Bucket.Cors cors = 9;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->cors_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9,
      this->cors(static_cast<int>(i)),
      output);
  }

  // string location = 10;
  if (this->location().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->location().data(), static_cast<int>(this->location().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.location");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      10, this->location(), output);
  }

  // string storage_class = 11;
  if (this->storage_class().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->storage_class().data(), static_cast<int>(this->storage_class().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.storage_class");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      11, this->storage_class(), output);
  }

  // string etag = 12;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.etag");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      12, this->etag(), output);
  }

  // .google.protobuf.Timestamp updated = 13;
  if (this->has_updated()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      13, HasBitSetters::updated(this), output);
  }

  // bool default_event_based_hold = 14;
  if (this->default_event_based_hold() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(14, this->default_event_based_hold(), output);
  }

  // map<string, string> labels = 15;
  if (!this->labels().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Bucket.LabelsEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Bucket.LabelsEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->labels().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->labels().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->labels().begin();
          it != this->labels().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Bucket_LabelsEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(labels_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(15, *entry, output);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Bucket_LabelsEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->labels().begin();
          it != this->labels().end(); ++it) {
        entry.reset(labels_.NewEntryWrapper(it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(15, *entry, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // .google.storage.v1.Bucket.Website website = 16;
  if (this->has_website()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      16, HasBitSetters::website(this), output);
  }

  // .google.storage.v1.Bucket.Versioning versioning = 17;
  if (this->has_versioning()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      17, HasBitSetters::versioning(this), output);
  }

  // .google.storage.v1.Bucket.Logging logging = 18;
  if (this->has_logging()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      18, HasBitSetters::logging(this), output);
  }

  // .google.storage.v1.Owner owner = 19;
  if (this->has_owner()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      19, HasBitSetters::owner(this), output);
  }

  // .google.storage.v1.Bucket.Encryption encryption = 20;
  if (this->has_encryption()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      20, HasBitSetters::encryption(this), output);
  }

  // .google.storage.v1.Bucket.Billing billing = 21;
  if (this->has_billing()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      21, HasBitSetters::billing(this), output);
  }

  // .google.storage.v1.Bucket.RetentionPolicy retention_policy = 22;
  if (this->has_retention_policy()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      22, HasBitSetters::retention_policy(this), output);
  }

  // string location_type = 23;
  if (this->location_type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->location_type().data(), static_cast<int>(this->location_type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.location_type");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      23, this->location_type(), output);
  }

  // .google.storage.v1.Bucket.IamConfiguration iam_configuration = 24;
  if (this->has_iam_configuration()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      24, HasBitSetters::iam_configuration(this), output);
  }

  // repeated string zone_affinity = 25;
  for (int i = 0, n = this->zone_affinity_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->zone_affinity(i).data(), static_cast<int>(this->zone_affinity(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.zone_affinity");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      25, this->zone_affinity(i), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Bucket)
}

::google::protobuf::uint8* Bucket::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Bucket)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.BucketAccessControl acl = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->acl_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->acl(static_cast<int>(i)), target);
  }

  // repeated .google.storage.v1.ObjectAccessControl default_object_acl = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->default_object_acl_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->default_object_acl(static_cast<int>(i)), target);
  }

  // .google.storage.v1.Bucket.Lifecycle lifecycle = 3;
  if (this->has_lifecycle()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, HasBitSetters::lifecycle(this), target);
  }

  // .google.protobuf.Timestamp time_created = 4;
  if (this->has_time_created()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::time_created(this), target);
  }

  // string id = 5;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->id(), target);
  }

  // string name = 6;
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->name(), target);
  }

  // int64 project_number = 7;
  if (this->project_number() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(7, this->project_number(), target);
  }

  // int64 metageneration = 8;
  if (this->metageneration() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(8, this->metageneration(), target);
  }

  // repeated .google.storage.v1.Bucket.Cors cors = 9;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->cors_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, this->cors(static_cast<int>(i)), target);
  }

  // string location = 10;
  if (this->location().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->location().data(), static_cast<int>(this->location().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.location");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        10, this->location(), target);
  }

  // string storage_class = 11;
  if (this->storage_class().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->storage_class().data(), static_cast<int>(this->storage_class().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.storage_class");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        11, this->storage_class(), target);
  }

  // string etag = 12;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.etag");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        12, this->etag(), target);
  }

  // .google.protobuf.Timestamp updated = 13;
  if (this->has_updated()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        13, HasBitSetters::updated(this), target);
  }

  // bool default_event_based_hold = 14;
  if (this->default_event_based_hold() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(14, this->default_event_based_hold(), target);
  }

  // map<string, string> labels = 15;
  if (!this->labels().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Bucket.LabelsEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Bucket.LabelsEntry.value");
      }
    };

    if (false &&
        this->labels().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->labels().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->labels().begin();
          it != this->labels().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Bucket_LabelsEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(labels_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(15, *entry, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Bucket_LabelsEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->labels().begin();
          it != this->labels().end(); ++it) {
        entry.reset(labels_.NewEntryWrapper(it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(15, *entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // .google.storage.v1.Bucket.Website website = 16;
  if (this->has_website()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        16, HasBitSetters::website(this), target);
  }

  // .google.storage.v1.Bucket.Versioning versioning = 17;
  if (this->has_versioning()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        17, HasBitSetters::versioning(this), target);
  }

  // .google.storage.v1.Bucket.Logging logging = 18;
  if (this->has_logging()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        18, HasBitSetters::logging(this), target);
  }

  // .google.storage.v1.Owner owner = 19;
  if (this->has_owner()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        19, HasBitSetters::owner(this), target);
  }

  // .google.storage.v1.Bucket.Encryption encryption = 20;
  if (this->has_encryption()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        20, HasBitSetters::encryption(this), target);
  }

  // .google.storage.v1.Bucket.Billing billing = 21;
  if (this->has_billing()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        21, HasBitSetters::billing(this), target);
  }

  // .google.storage.v1.Bucket.RetentionPolicy retention_policy = 22;
  if (this->has_retention_policy()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        22, HasBitSetters::retention_policy(this), target);
  }

  // string location_type = 23;
  if (this->location_type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->location_type().data(), static_cast<int>(this->location_type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.location_type");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        23, this->location_type(), target);
  }

  // .google.storage.v1.Bucket.IamConfiguration iam_configuration = 24;
  if (this->has_iam_configuration()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        24, HasBitSetters::iam_configuration(this), target);
  }

  // repeated string zone_affinity = 25;
  for (int i = 0, n = this->zone_affinity_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->zone_affinity(i).data(), static_cast<int>(this->zone_affinity(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Bucket.zone_affinity");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(25, this->zone_affinity(i), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Bucket)
  return target;
}

size_t Bucket::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Bucket)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.BucketAccessControl acl = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->acl_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->acl(static_cast<int>(i)));
    }
  }

  // repeated .google.storage.v1.ObjectAccessControl default_object_acl = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->default_object_acl_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->default_object_acl(static_cast<int>(i)));
    }
  }

  // repeated .google.storage.v1.Bucket.Cors cors = 9;
  {
    unsigned int count = static_cast<unsigned int>(this->cors_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->cors(static_cast<int>(i)));
    }
  }

  // map<string, string> labels = 15;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->labels_size());
  {
    ::std::unique_ptr<Bucket_LabelsEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
        it = this->labels().begin();
        it != this->labels().end(); ++it) {
      entry.reset(labels_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // repeated string zone_affinity = 25;
  total_size += 2 *
      ::google::protobuf::internal::FromIntSize(this->zone_affinity_size());
  for (int i = 0, n = this->zone_affinity_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->zone_affinity(i));
  }

  // string id = 5;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string name = 6;
  if (this->name().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  // string location = 10;
  if (this->location().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->location());
  }

  // string storage_class = 11;
  if (this->storage_class().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->storage_class());
  }

  // string etag = 12;
  if (this->etag().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->etag());
  }

  // string location_type = 23;
  if (this->location_type().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->location_type());
  }

  // .google.storage.v1.Bucket.Lifecycle lifecycle = 3;
  if (this->has_lifecycle()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *lifecycle_);
  }

  // .google.protobuf.Timestamp time_created = 4;
  if (this->has_time_created()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *time_created_);
  }

  // .google.protobuf.Timestamp updated = 13;
  if (this->has_updated()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *updated_);
  }

  // .google.storage.v1.Bucket.Website website = 16;
  if (this->has_website()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *website_);
  }

  // .google.storage.v1.Bucket.Versioning versioning = 17;
  if (this->has_versioning()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *versioning_);
  }

  // .google.storage.v1.Bucket.Logging logging = 18;
  if (this->has_logging()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *logging_);
  }

  // .google.storage.v1.Owner owner = 19;
  if (this->has_owner()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *owner_);
  }

  // .google.storage.v1.Bucket.Encryption encryption = 20;
  if (this->has_encryption()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *encryption_);
  }

  // .google.storage.v1.Bucket.Billing billing = 21;
  if (this->has_billing()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *billing_);
  }

  // .google.storage.v1.Bucket.RetentionPolicy retention_policy = 22;
  if (this->has_retention_policy()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *retention_policy_);
  }

  // .google.storage.v1.Bucket.IamConfiguration iam_configuration = 24;
  if (this->has_iam_configuration()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *iam_configuration_);
  }

  // int64 project_number = 7;
  if (this->project_number() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->project_number());
  }

  // int64 metageneration = 8;
  if (this->metageneration() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->metageneration());
  }

  // bool default_event_based_hold = 14;
  if (this->default_event_based_hold() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Bucket::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Bucket)
  GOOGLE_DCHECK_NE(&from, this);
  const Bucket* source =
      ::google::protobuf::DynamicCastToGenerated<Bucket>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Bucket)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Bucket)
    MergeFrom(*source);
  }
}

void Bucket::MergeFrom(const Bucket& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Bucket)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  acl_.MergeFrom(from.acl_);
  default_object_acl_.MergeFrom(from.default_object_acl_);
  cors_.MergeFrom(from.cors_);
  labels_.MergeFrom(from.labels_);
  zone_affinity_.MergeFrom(from.zone_affinity_);
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.name().size() > 0) {

    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  if (from.location().size() > 0) {

    location_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.location_);
  }
  if (from.storage_class().size() > 0) {

    storage_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.storage_class_);
  }
  if (from.etag().size() > 0) {

    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.location_type().size() > 0) {

    location_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.location_type_);
  }
  if (from.has_lifecycle()) {
    mutable_lifecycle()->::google::storage::v1::Bucket_Lifecycle::MergeFrom(from.lifecycle());
  }
  if (from.has_time_created()) {
    mutable_time_created()->::google::protobuf::Timestamp::MergeFrom(from.time_created());
  }
  if (from.has_updated()) {
    mutable_updated()->::google::protobuf::Timestamp::MergeFrom(from.updated());
  }
  if (from.has_website()) {
    mutable_website()->::google::storage::v1::Bucket_Website::MergeFrom(from.website());
  }
  if (from.has_versioning()) {
    mutable_versioning()->::google::storage::v1::Bucket_Versioning::MergeFrom(from.versioning());
  }
  if (from.has_logging()) {
    mutable_logging()->::google::storage::v1::Bucket_Logging::MergeFrom(from.logging());
  }
  if (from.has_owner()) {
    mutable_owner()->::google::storage::v1::Owner::MergeFrom(from.owner());
  }
  if (from.has_encryption()) {
    mutable_encryption()->::google::storage::v1::Bucket_Encryption::MergeFrom(from.encryption());
  }
  if (from.has_billing()) {
    mutable_billing()->::google::storage::v1::Bucket_Billing::MergeFrom(from.billing());
  }
  if (from.has_retention_policy()) {
    mutable_retention_policy()->::google::storage::v1::Bucket_RetentionPolicy::MergeFrom(from.retention_policy());
  }
  if (from.has_iam_configuration()) {
    mutable_iam_configuration()->::google::storage::v1::Bucket_IamConfiguration::MergeFrom(from.iam_configuration());
  }
  if (from.project_number() != 0) {
    set_project_number(from.project_number());
  }
  if (from.metageneration() != 0) {
    set_metageneration(from.metageneration());
  }
  if (from.default_event_based_hold() != 0) {
    set_default_event_based_hold(from.default_event_based_hold());
  }
}

void Bucket::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Bucket)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Bucket::CopyFrom(const Bucket& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Bucket)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Bucket::IsInitialized() const {
  return true;
}

void Bucket::Swap(Bucket* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Bucket::InternalSwap(Bucket* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&acl_)->InternalSwap(CastToBase(&other->acl_));
  CastToBase(&default_object_acl_)->InternalSwap(CastToBase(&other->default_object_acl_));
  CastToBase(&cors_)->InternalSwap(CastToBase(&other->cors_));
  labels_.Swap(&other->labels_);
  zone_affinity_.InternalSwap(CastToBase(&other->zone_affinity_));
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  location_.Swap(&other->location_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  storage_class_.Swap(&other->storage_class_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  etag_.Swap(&other->etag_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  location_type_.Swap(&other->location_type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(lifecycle_, other->lifecycle_);
  swap(time_created_, other->time_created_);
  swap(updated_, other->updated_);
  swap(website_, other->website_);
  swap(versioning_, other->versioning_);
  swap(logging_, other->logging_);
  swap(owner_, other->owner_);
  swap(encryption_, other->encryption_);
  swap(billing_, other->billing_);
  swap(retention_policy_, other->retention_policy_);
  swap(iam_configuration_, other->iam_configuration_);
  swap(project_number_, other->project_number_);
  swap(metageneration_, other->metageneration_);
  swap(default_event_based_hold_, other->default_event_based_hold_);
}

::google::protobuf::Metadata Bucket::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void BucketAccessControl::InitAsDefaultInstance() {
  ::google::storage::v1::_BucketAccessControl_default_instance_._instance.get_mutable()->project_team_ = const_cast< ::google::storage::v1::ProjectTeam*>(
      ::google::storage::v1::ProjectTeam::internal_default_instance());
}
class BucketAccessControl::HasBitSetters {
 public:
  static const ::google::storage::v1::ProjectTeam& project_team(const BucketAccessControl* msg);
};

const ::google::storage::v1::ProjectTeam&
BucketAccessControl::HasBitSetters::project_team(const BucketAccessControl* msg) {
  return *msg->project_team_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int BucketAccessControl::kRoleFieldNumber;
const int BucketAccessControl::kEtagFieldNumber;
const int BucketAccessControl::kIdFieldNumber;
const int BucketAccessControl::kBucketFieldNumber;
const int BucketAccessControl::kEntityFieldNumber;
const int BucketAccessControl::kEntityIdFieldNumber;
const int BucketAccessControl::kEmailFieldNumber;
const int BucketAccessControl::kDomainFieldNumber;
const int BucketAccessControl::kProjectTeamFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

BucketAccessControl::BucketAccessControl()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.BucketAccessControl)
}
BucketAccessControl::BucketAccessControl(const BucketAccessControl& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  role_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.role().size() > 0) {
    role_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.role_);
  }
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.etag().size() > 0) {
    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.bucket().size() > 0) {
    bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bucket_);
  }
  entity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.entity().size() > 0) {
    entity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_);
  }
  entity_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.entity_id().size() > 0) {
    entity_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_id_);
  }
  email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.email().size() > 0) {
    email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.email_);
  }
  domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.domain().size() > 0) {
    domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_);
  }
  if (from.has_project_team()) {
    project_team_ = new ::google::storage::v1::ProjectTeam(*from.project_team_);
  } else {
    project_team_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.BucketAccessControl)
}

void BucketAccessControl::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  role_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  project_team_ = nullptr;
}

BucketAccessControl::~BucketAccessControl() {
  // @@protoc_insertion_point(destructor:google.storage.v1.BucketAccessControl)
  SharedDtor();
}

void BucketAccessControl::SharedDtor() {
  role_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  email_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete project_team_;
}

void BucketAccessControl::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const BucketAccessControl& BucketAccessControl::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_BucketAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void BucketAccessControl::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.BucketAccessControl)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  role_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  email_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && project_team_ != nullptr) {
    delete project_team_;
  }
  project_team_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* BucketAccessControl::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<BucketAccessControl*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string role = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.role");
        object = msg->mutable_role();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string etag = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.etag");
        object = msg->mutable_etag();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string id = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string bucket = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.bucket");
        object = msg->mutable_bucket();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string entity = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.entity");
        object = msg->mutable_entity();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string entity_id = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.entity_id");
        object = msg->mutable_entity_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string email = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.email");
        object = msg->mutable_email();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string domain = 9;
      case 9: {
        if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.BucketAccessControl.domain");
        object = msg->mutable_domain();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.storage.v1.ProjectTeam project_team = 10;
      case 10: {
        if (static_cast<::google::protobuf::uint8>(tag) != 82) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::ProjectTeam::_InternalParse;
        object = msg->mutable_project_team();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool BucketAccessControl::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.BucketAccessControl)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string role = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_role()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->role().data(), static_cast<int>(this->role().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.role"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string etag = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_etag()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->etag().data(), static_cast<int>(this->etag().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.etag"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string bucket = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_bucket()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->bucket().data(), static_cast<int>(this->bucket().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.bucket"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string entity = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entity()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->entity().data(), static_cast<int>(this->entity().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.entity"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string entity_id = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entity_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->entity_id().data(), static_cast<int>(this->entity_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.entity_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string email = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_email()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->email().data(), static_cast<int>(this->email().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.email"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string domain = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_domain()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->domain().data(), static_cast<int>(this->domain().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.BucketAccessControl.domain"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.ProjectTeam project_team = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (82 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_project_team()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.BucketAccessControl)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.BucketAccessControl)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void BucketAccessControl::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.BucketAccessControl)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string role = 1;
  if (this->role().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->role().data(), static_cast<int>(this->role().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.role");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->role(), output);
  }

  // string etag = 2;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.etag");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->etag(), output);
  }

  // string id = 3;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->id(), output);
  }

  // string bucket = 4;
  if (this->bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->bucket().data(), static_cast<int>(this->bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.bucket");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->bucket(), output);
  }

  // string entity = 6;
  if (this->entity().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity().data(), static_cast<int>(this->entity().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.entity");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->entity(), output);
  }

  // string entity_id = 7;
  if (this->entity_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity_id().data(), static_cast<int>(this->entity_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.entity_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->entity_id(), output);
  }

  // string email = 8;
  if (this->email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->email().data(), static_cast<int>(this->email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.email");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->email(), output);
  }

  // string domain = 9;
  if (this->domain().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->domain().data(), static_cast<int>(this->domain().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.domain");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      9, this->domain(), output);
  }

  // .google.storage.v1.ProjectTeam project_team = 10;
  if (this->has_project_team()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, HasBitSetters::project_team(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.BucketAccessControl)
}

::google::protobuf::uint8* BucketAccessControl::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.BucketAccessControl)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string role = 1;
  if (this->role().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->role().data(), static_cast<int>(this->role().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.role");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->role(), target);
  }

  // string etag = 2;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.etag");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->etag(), target);
  }

  // string id = 3;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->id(), target);
  }

  // string bucket = 4;
  if (this->bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->bucket().data(), static_cast<int>(this->bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.bucket");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->bucket(), target);
  }

  // string entity = 6;
  if (this->entity().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity().data(), static_cast<int>(this->entity().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.entity");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->entity(), target);
  }

  // string entity_id = 7;
  if (this->entity_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity_id().data(), static_cast<int>(this->entity_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.entity_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->entity_id(), target);
  }

  // string email = 8;
  if (this->email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->email().data(), static_cast<int>(this->email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.email");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->email(), target);
  }

  // string domain = 9;
  if (this->domain().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->domain().data(), static_cast<int>(this->domain().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.BucketAccessControl.domain");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        9, this->domain(), target);
  }

  // .google.storage.v1.ProjectTeam project_team = 10;
  if (this->has_project_team()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, HasBitSetters::project_team(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.BucketAccessControl)
  return target;
}

size_t BucketAccessControl::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.BucketAccessControl)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string role = 1;
  if (this->role().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->role());
  }

  // string etag = 2;
  if (this->etag().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->etag());
  }

  // string id = 3;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string bucket = 4;
  if (this->bucket().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->bucket());
  }

  // string entity = 6;
  if (this->entity().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->entity());
  }

  // string entity_id = 7;
  if (this->entity_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->entity_id());
  }

  // string email = 8;
  if (this->email().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->email());
  }

  // string domain = 9;
  if (this->domain().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->domain());
  }

  // .google.storage.v1.ProjectTeam project_team = 10;
  if (this->has_project_team()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *project_team_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void BucketAccessControl::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.BucketAccessControl)
  GOOGLE_DCHECK_NE(&from, this);
  const BucketAccessControl* source =
      ::google::protobuf::DynamicCastToGenerated<BucketAccessControl>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.BucketAccessControl)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.BucketAccessControl)
    MergeFrom(*source);
  }
}

void BucketAccessControl::MergeFrom(const BucketAccessControl& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.BucketAccessControl)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.role().size() > 0) {

    role_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.role_);
  }
  if (from.etag().size() > 0) {

    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.bucket().size() > 0) {

    bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bucket_);
  }
  if (from.entity().size() > 0) {

    entity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_);
  }
  if (from.entity_id().size() > 0) {

    entity_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_id_);
  }
  if (from.email().size() > 0) {

    email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.email_);
  }
  if (from.domain().size() > 0) {

    domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_);
  }
  if (from.has_project_team()) {
    mutable_project_team()->::google::storage::v1::ProjectTeam::MergeFrom(from.project_team());
  }
}

void BucketAccessControl::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.BucketAccessControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void BucketAccessControl::CopyFrom(const BucketAccessControl& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.BucketAccessControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool BucketAccessControl::IsInitialized() const {
  return true;
}

void BucketAccessControl::Swap(BucketAccessControl* other) {
  if (other == this) return;
  InternalSwap(other);
}
void BucketAccessControl::InternalSwap(BucketAccessControl* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  role_.Swap(&other->role_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  etag_.Swap(&other->etag_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  bucket_.Swap(&other->bucket_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  entity_.Swap(&other->entity_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  entity_id_.Swap(&other->entity_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  email_.Swap(&other->email_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  domain_.Swap(&other->domain_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(project_team_, other->project_team_);
}

::google::protobuf::Metadata BucketAccessControl::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListBucketAccessControlsResponse::InitAsDefaultInstance() {
}
class ListBucketAccessControlsResponse::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListBucketAccessControlsResponse::kItemsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListBucketAccessControlsResponse::ListBucketAccessControlsResponse()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListBucketAccessControlsResponse)
}
ListBucketAccessControlsResponse::ListBucketAccessControlsResponse(const ListBucketAccessControlsResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      items_(from.items_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListBucketAccessControlsResponse)
}

void ListBucketAccessControlsResponse::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListBucketAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
}

ListBucketAccessControlsResponse::~ListBucketAccessControlsResponse() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListBucketAccessControlsResponse)
  SharedDtor();
}

void ListBucketAccessControlsResponse::SharedDtor() {
}

void ListBucketAccessControlsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListBucketAccessControlsResponse& ListBucketAccessControlsResponse::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListBucketAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListBucketAccessControlsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListBucketAccessControlsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  items_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListBucketAccessControlsResponse::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListBucketAccessControlsResponse*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.BucketAccessControl items = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::BucketAccessControl::_InternalParse;
          object = msg->add_items();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListBucketAccessControlsResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListBucketAccessControlsResponse)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.BucketAccessControl items = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_items()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListBucketAccessControlsResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListBucketAccessControlsResponse)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListBucketAccessControlsResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListBucketAccessControlsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.BucketAccessControl items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->items(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListBucketAccessControlsResponse)
}

::google::protobuf::uint8* ListBucketAccessControlsResponse::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListBucketAccessControlsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.BucketAccessControl items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->items(static_cast<int>(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListBucketAccessControlsResponse)
  return target;
}

size_t ListBucketAccessControlsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListBucketAccessControlsResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.BucketAccessControl items = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->items_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->items(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListBucketAccessControlsResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListBucketAccessControlsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ListBucketAccessControlsResponse* source =
      ::google::protobuf::DynamicCastToGenerated<ListBucketAccessControlsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListBucketAccessControlsResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListBucketAccessControlsResponse)
    MergeFrom(*source);
  }
}

void ListBucketAccessControlsResponse::MergeFrom(const ListBucketAccessControlsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListBucketAccessControlsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  items_.MergeFrom(from.items_);
}

void ListBucketAccessControlsResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListBucketAccessControlsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListBucketAccessControlsResponse::CopyFrom(const ListBucketAccessControlsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListBucketAccessControlsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListBucketAccessControlsResponse::IsInitialized() const {
  return true;
}

void ListBucketAccessControlsResponse::Swap(ListBucketAccessControlsResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListBucketAccessControlsResponse::InternalSwap(ListBucketAccessControlsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&items_)->InternalSwap(CastToBase(&other->items_));
}

::google::protobuf::Metadata ListBucketAccessControlsResponse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListBucketsResponse::InitAsDefaultInstance() {
}
class ListBucketsResponse::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListBucketsResponse::kItemsFieldNumber;
const int ListBucketsResponse::kNextPageTokenFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListBucketsResponse::ListBucketsResponse()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListBucketsResponse)
}
ListBucketsResponse::ListBucketsResponse(const ListBucketsResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      items_(from.items_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  next_page_token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.next_page_token().size() > 0) {
    next_page_token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.next_page_token_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListBucketsResponse)
}

void ListBucketsResponse::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListBucketsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  next_page_token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ListBucketsResponse::~ListBucketsResponse() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListBucketsResponse)
  SharedDtor();
}

void ListBucketsResponse::SharedDtor() {
  next_page_token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ListBucketsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListBucketsResponse& ListBucketsResponse::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListBucketsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListBucketsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListBucketsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  items_.Clear();
  next_page_token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListBucketsResponse::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListBucketsResponse*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.Bucket items = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::Bucket::_InternalParse;
          object = msg->add_items();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      // string next_page_token = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ListBucketsResponse.next_page_token");
        object = msg->mutable_next_page_token();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListBucketsResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListBucketsResponse)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.Bucket items = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_items()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string next_page_token = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_next_page_token()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->next_page_token().data(), static_cast<int>(this->next_page_token().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListBucketsResponse.next_page_token"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListBucketsResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListBucketsResponse)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListBucketsResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListBucketsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.Bucket items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->items(static_cast<int>(i)),
      output);
  }

  // string next_page_token = 2;
  if (this->next_page_token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->next_page_token().data(), static_cast<int>(this->next_page_token().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListBucketsResponse.next_page_token");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->next_page_token(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListBucketsResponse)
}

::google::protobuf::uint8* ListBucketsResponse::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListBucketsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.Bucket items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->items(static_cast<int>(i)), target);
  }

  // string next_page_token = 2;
  if (this->next_page_token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->next_page_token().data(), static_cast<int>(this->next_page_token().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListBucketsResponse.next_page_token");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->next_page_token(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListBucketsResponse)
  return target;
}

size_t ListBucketsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListBucketsResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.Bucket items = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->items_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->items(static_cast<int>(i)));
    }
  }

  // string next_page_token = 2;
  if (this->next_page_token().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->next_page_token());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListBucketsResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListBucketsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ListBucketsResponse* source =
      ::google::protobuf::DynamicCastToGenerated<ListBucketsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListBucketsResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListBucketsResponse)
    MergeFrom(*source);
  }
}

void ListBucketsResponse::MergeFrom(const ListBucketsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListBucketsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  items_.MergeFrom(from.items_);
  if (from.next_page_token().size() > 0) {

    next_page_token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.next_page_token_);
  }
}

void ListBucketsResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListBucketsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListBucketsResponse::CopyFrom(const ListBucketsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListBucketsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListBucketsResponse::IsInitialized() const {
  return true;
}

void ListBucketsResponse::Swap(ListBucketsResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListBucketsResponse::InternalSwap(ListBucketsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&items_)->InternalSwap(CastToBase(&other->items_));
  next_page_token_.Swap(&other->next_page_token_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ListBucketsResponse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

Channel_ParamsEntry_DoNotUse::Channel_ParamsEntry_DoNotUse() {}
Channel_ParamsEntry_DoNotUse::Channel_ParamsEntry_DoNotUse(::google::protobuf::Arena* arena)
    : SuperType(arena) {}
void Channel_ParamsEntry_DoNotUse::MergeFrom(const Channel_ParamsEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata Channel_ParamsEntry_DoNotUse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[18];
}
void Channel_ParamsEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Channel_ParamsEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
  using MF = ::google::protobuf::internal::MapField<
      Channel_ParamsEntry_DoNotUse, EntryKeyType, EntryValueType,
      kEntryKeyFieldType, kEntryValueFieldType,
      kEntryDefaultEnumValue>;
  auto mf = static_cast<MF*>(object);
  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
#define DO_(x) if (!(x)) return false
  DO_(parser.ParseMap(begin, end));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.key().data(), static_cast<int>(parser.key().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Channel.ParamsEntry.key"));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.value().data(), static_cast<int>(parser.value().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Channel.ParamsEntry.value"));
#undef DO_
  return true;
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER


// ===================================================================

void Channel::InitAsDefaultInstance() {
  ::google::storage::v1::_Channel_default_instance_._instance.get_mutable()->expiration_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
}
class Channel::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& expiration(const Channel* msg);
};

const ::google::protobuf::Timestamp&
Channel::HasBitSetters::expiration(const Channel* msg) {
  return *msg->expiration_;
}
void Channel::clear_expiration() {
  if (GetArenaNoVirtual() == nullptr && expiration_ != nullptr) {
    delete expiration_;
  }
  expiration_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Channel::kIdFieldNumber;
const int Channel::kResourceIdFieldNumber;
const int Channel::kResourceUriFieldNumber;
const int Channel::kTokenFieldNumber;
const int Channel::kExpirationFieldNumber;
const int Channel::kTypeFieldNumber;
const int Channel::kAddressFieldNumber;
const int Channel::kParamsFieldNumber;
const int Channel::kPayloadFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Channel::Channel()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Channel)
}
Channel::Channel(const Channel& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  params_.MergeFrom(from.params_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  resource_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.resource_id().size() > 0) {
    resource_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_id_);
  }
  resource_uri_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.resource_uri().size() > 0) {
    resource_uri_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_uri_);
  }
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.token().size() > 0) {
    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.type().size() > 0) {
    type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_);
  }
  address_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.address().size() > 0) {
    address_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.address_);
  }
  if (from.has_expiration()) {
    expiration_ = new ::google::protobuf::Timestamp(*from.expiration_);
  } else {
    expiration_ = nullptr;
  }
  payload_ = from.payload_;
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Channel)
}

void Channel::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Channel_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_uri_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  address_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&expiration_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&payload_) -
      reinterpret_cast<char*>(&expiration_)) + sizeof(payload_));
}

Channel::~Channel() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Channel)
  SharedDtor();
}

void Channel::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_uri_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  address_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete expiration_;
}

void Channel::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Channel& Channel::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Channel_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Channel::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Channel)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  params_.Clear();
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_uri_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  address_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && expiration_ != nullptr) {
    delete expiration_;
  }
  expiration_ = nullptr;
  payload_ = false;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Channel::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Channel*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Channel.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string resource_id = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Channel.resource_id");
        object = msg->mutable_resource_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string resource_uri = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Channel.resource_uri");
        object = msg->mutable_resource_uri();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string token = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Channel.token");
        object = msg->mutable_token();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Timestamp expiration = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_expiration();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string type = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Channel.type");
        object = msg->mutable_type();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string address = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Channel.address");
        object = msg->mutable_address();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // map<string, string> params = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
          auto parse_map = ::google::storage::v1::Channel_ParamsEntry_DoNotUse::_ParseMap;
          ctx->extra_parse_data().payload.clear();
          ctx->extra_parse_data().parse_map = parse_map;
          object = &msg->params_;
          if (size > end - ptr) goto len_delim_till_end;
          auto newend = ptr + size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
          ptr = newend;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 66 && (ptr += 1));
        break;
      }
      // bool payload = 9;
      case 9: {
        if (static_cast<::google::protobuf::uint8>(tag) != 72) goto handle_unusual;
        msg->set_payload(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Channel::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Channel)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string resource_id = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_resource_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->resource_id().data(), static_cast<int>(this->resource_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.resource_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string resource_uri = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_resource_uri()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->resource_uri().data(), static_cast<int>(this->resource_uri().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.resource_uri"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string token = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_token()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->token().data(), static_cast<int>(this->token().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.token"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp expiration = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_expiration()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string type = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_type()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->type().data(), static_cast<int>(this->type().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.type"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string address = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_address()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->address().data(), static_cast<int>(this->address().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.address"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, string> params = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
          Channel_ParamsEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              Channel_ParamsEntry_DoNotUse,
              ::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(&params_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.ParamsEntry.key"));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Channel.ParamsEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool payload = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (72 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &payload_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Channel)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Channel)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Channel::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Channel)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string resource_id = 2;
  if (this->resource_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->resource_id().data(), static_cast<int>(this->resource_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.resource_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->resource_id(), output);
  }

  // string resource_uri = 3;
  if (this->resource_uri().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->resource_uri().data(), static_cast<int>(this->resource_uri().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.resource_uri");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->resource_uri(), output);
  }

  // string token = 4;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), static_cast<int>(this->token().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.token");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->token(), output);
  }

  // .google.protobuf.Timestamp expiration = 5;
  if (this->has_expiration()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, HasBitSetters::expiration(this), output);
  }

  // string type = 6;
  if (this->type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->type().data(), static_cast<int>(this->type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.type");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->type(), output);
  }

  // string address = 7;
  if (this->address().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->address().data(), static_cast<int>(this->address().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.address");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->address(), output);
  }

  // map<string, string> params = 8;
  if (!this->params().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Channel.ParamsEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Channel.ParamsEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->params().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->params().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->params().begin();
          it != this->params().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Channel_ParamsEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(params_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(8, *entry, output);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Channel_ParamsEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->params().begin();
          it != this->params().end(); ++it) {
        entry.reset(params_.NewEntryWrapper(it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(8, *entry, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // bool payload = 9;
  if (this->payload() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(9, this->payload(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Channel)
}

::google::protobuf::uint8* Channel::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Channel)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string resource_id = 2;
  if (this->resource_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->resource_id().data(), static_cast<int>(this->resource_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.resource_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->resource_id(), target);
  }

  // string resource_uri = 3;
  if (this->resource_uri().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->resource_uri().data(), static_cast<int>(this->resource_uri().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.resource_uri");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->resource_uri(), target);
  }

  // string token = 4;
  if (this->token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->token().data(), static_cast<int>(this->token().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.token");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->token(), target);
  }

  // .google.protobuf.Timestamp expiration = 5;
  if (this->has_expiration()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, HasBitSetters::expiration(this), target);
  }

  // string type = 6;
  if (this->type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->type().data(), static_cast<int>(this->type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.type");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->type(), target);
  }

  // string address = 7;
  if (this->address().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->address().data(), static_cast<int>(this->address().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Channel.address");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->address(), target);
  }

  // map<string, string> params = 8;
  if (!this->params().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Channel.ParamsEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Channel.ParamsEntry.value");
      }
    };

    if (false &&
        this->params().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->params().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->params().begin();
          it != this->params().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Channel_ParamsEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(params_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(8, *entry, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Channel_ParamsEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->params().begin();
          it != this->params().end(); ++it) {
        entry.reset(params_.NewEntryWrapper(it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(8, *entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // bool payload = 9;
  if (this->payload() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(9, this->payload(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Channel)
  return target;
}

size_t Channel::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Channel)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, string> params = 8;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->params_size());
  {
    ::std::unique_ptr<Channel_ParamsEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
        it = this->params().begin();
        it != this->params().end(); ++it) {
      entry.reset(params_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string resource_id = 2;
  if (this->resource_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->resource_id());
  }

  // string resource_uri = 3;
  if (this->resource_uri().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->resource_uri());
  }

  // string token = 4;
  if (this->token().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->token());
  }

  // string type = 6;
  if (this->type().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->type());
  }

  // string address = 7;
  if (this->address().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->address());
  }

  // .google.protobuf.Timestamp expiration = 5;
  if (this->has_expiration()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *expiration_);
  }

  // bool payload = 9;
  if (this->payload() != 0) {
    total_size += 1 + 1;
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Channel::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Channel)
  GOOGLE_DCHECK_NE(&from, this);
  const Channel* source =
      ::google::protobuf::DynamicCastToGenerated<Channel>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Channel)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Channel)
    MergeFrom(*source);
  }
}

void Channel::MergeFrom(const Channel& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Channel)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  params_.MergeFrom(from.params_);
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.resource_id().size() > 0) {

    resource_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_id_);
  }
  if (from.resource_uri().size() > 0) {

    resource_uri_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_uri_);
  }
  if (from.token().size() > 0) {

    token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.token_);
  }
  if (from.type().size() > 0) {

    type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.type_);
  }
  if (from.address().size() > 0) {

    address_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.address_);
  }
  if (from.has_expiration()) {
    mutable_expiration()->::google::protobuf::Timestamp::MergeFrom(from.expiration());
  }
  if (from.payload() != 0) {
    set_payload(from.payload());
  }
}

void Channel::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Channel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Channel::CopyFrom(const Channel& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Channel)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Channel::IsInitialized() const {
  return true;
}

void Channel::Swap(Channel* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Channel::InternalSwap(Channel* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  params_.Swap(&other->params_);
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  resource_id_.Swap(&other->resource_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  resource_uri_.Swap(&other->resource_uri_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  token_.Swap(&other->token_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  type_.Swap(&other->type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  address_.Swap(&other->address_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(expiration_, other->expiration_);
  swap(payload_, other->payload_);
}

::google::protobuf::Metadata Channel::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListChannelsResponse_Items::InitAsDefaultInstance() {
  ::google::storage::v1::_ListChannelsResponse_Items_default_instance_._instance.get_mutable()->creation_time_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
}
class ListChannelsResponse_Items::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& creation_time(const ListChannelsResponse_Items* msg);
};

const ::google::protobuf::Timestamp&
ListChannelsResponse_Items::HasBitSetters::creation_time(const ListChannelsResponse_Items* msg) {
  return *msg->creation_time_;
}
void ListChannelsResponse_Items::clear_creation_time() {
  if (GetArenaNoVirtual() == nullptr && creation_time_ != nullptr) {
    delete creation_time_;
  }
  creation_time_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListChannelsResponse_Items::kChannelIdFieldNumber;
const int ListChannelsResponse_Items::kResourceIdFieldNumber;
const int ListChannelsResponse_Items::kPushUrlFieldNumber;
const int ListChannelsResponse_Items::kSubscriberEmailFieldNumber;
const int ListChannelsResponse_Items::kCreationTimeFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListChannelsResponse_Items::ListChannelsResponse_Items()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListChannelsResponse.Items)
}
ListChannelsResponse_Items::ListChannelsResponse_Items(const ListChannelsResponse_Items& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  channel_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.channel_id().size() > 0) {
    channel_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.channel_id_);
  }
  resource_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.resource_id().size() > 0) {
    resource_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_id_);
  }
  push_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.push_url().size() > 0) {
    push_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.push_url_);
  }
  subscriber_email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.subscriber_email().size() > 0) {
    subscriber_email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.subscriber_email_);
  }
  if (from.has_creation_time()) {
    creation_time_ = new ::google::protobuf::Timestamp(*from.creation_time_);
  } else {
    creation_time_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListChannelsResponse.Items)
}

void ListChannelsResponse_Items::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  channel_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  push_url_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  subscriber_email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  creation_time_ = nullptr;
}

ListChannelsResponse_Items::~ListChannelsResponse_Items() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListChannelsResponse.Items)
  SharedDtor();
}

void ListChannelsResponse_Items::SharedDtor() {
  channel_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  push_url_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  subscriber_email_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete creation_time_;
}

void ListChannelsResponse_Items::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListChannelsResponse_Items& ListChannelsResponse_Items::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListChannelsResponse_Items_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListChannelsResponse_Items::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListChannelsResponse.Items)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  channel_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  resource_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  push_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  subscriber_email_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && creation_time_ != nullptr) {
    delete creation_time_;
  }
  creation_time_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListChannelsResponse_Items::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListChannelsResponse_Items*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string channel_id = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ListChannelsResponse.Items.channel_id");
        object = msg->mutable_channel_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string resource_id = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ListChannelsResponse.Items.resource_id");
        object = msg->mutable_resource_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string push_url = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ListChannelsResponse.Items.push_url");
        object = msg->mutable_push_url();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string subscriber_email = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ListChannelsResponse.Items.subscriber_email");
        object = msg->mutable_subscriber_email();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Timestamp creation_time = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_creation_time();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListChannelsResponse_Items::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListChannelsResponse.Items)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string channel_id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_channel_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->channel_id().data(), static_cast<int>(this->channel_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListChannelsResponse.Items.channel_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string resource_id = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_resource_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->resource_id().data(), static_cast<int>(this->resource_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListChannelsResponse.Items.resource_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string push_url = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_push_url()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->push_url().data(), static_cast<int>(this->push_url().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListChannelsResponse.Items.push_url"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string subscriber_email = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_subscriber_email()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->subscriber_email().data(), static_cast<int>(this->subscriber_email().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListChannelsResponse.Items.subscriber_email"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp creation_time = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_creation_time()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListChannelsResponse.Items)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListChannelsResponse.Items)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListChannelsResponse_Items::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListChannelsResponse.Items)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string channel_id = 1;
  if (this->channel_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->channel_id().data(), static_cast<int>(this->channel_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.channel_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->channel_id(), output);
  }

  // string resource_id = 2;
  if (this->resource_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->resource_id().data(), static_cast<int>(this->resource_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.resource_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->resource_id(), output);
  }

  // string push_url = 3;
  if (this->push_url().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->push_url().data(), static_cast<int>(this->push_url().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.push_url");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->push_url(), output);
  }

  // string subscriber_email = 4;
  if (this->subscriber_email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->subscriber_email().data(), static_cast<int>(this->subscriber_email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.subscriber_email");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->subscriber_email(), output);
  }

  // .google.protobuf.Timestamp creation_time = 5;
  if (this->has_creation_time()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, HasBitSetters::creation_time(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListChannelsResponse.Items)
}

::google::protobuf::uint8* ListChannelsResponse_Items::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListChannelsResponse.Items)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string channel_id = 1;
  if (this->channel_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->channel_id().data(), static_cast<int>(this->channel_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.channel_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->channel_id(), target);
  }

  // string resource_id = 2;
  if (this->resource_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->resource_id().data(), static_cast<int>(this->resource_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.resource_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->resource_id(), target);
  }

  // string push_url = 3;
  if (this->push_url().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->push_url().data(), static_cast<int>(this->push_url().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.push_url");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->push_url(), target);
  }

  // string subscriber_email = 4;
  if (this->subscriber_email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->subscriber_email().data(), static_cast<int>(this->subscriber_email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListChannelsResponse.Items.subscriber_email");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->subscriber_email(), target);
  }

  // .google.protobuf.Timestamp creation_time = 5;
  if (this->has_creation_time()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, HasBitSetters::creation_time(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListChannelsResponse.Items)
  return target;
}

size_t ListChannelsResponse_Items::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListChannelsResponse.Items)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string channel_id = 1;
  if (this->channel_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->channel_id());
  }

  // string resource_id = 2;
  if (this->resource_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->resource_id());
  }

  // string push_url = 3;
  if (this->push_url().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->push_url());
  }

  // string subscriber_email = 4;
  if (this->subscriber_email().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->subscriber_email());
  }

  // .google.protobuf.Timestamp creation_time = 5;
  if (this->has_creation_time()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *creation_time_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListChannelsResponse_Items::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListChannelsResponse.Items)
  GOOGLE_DCHECK_NE(&from, this);
  const ListChannelsResponse_Items* source =
      ::google::protobuf::DynamicCastToGenerated<ListChannelsResponse_Items>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListChannelsResponse.Items)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListChannelsResponse.Items)
    MergeFrom(*source);
  }
}

void ListChannelsResponse_Items::MergeFrom(const ListChannelsResponse_Items& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListChannelsResponse.Items)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.channel_id().size() > 0) {

    channel_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.channel_id_);
  }
  if (from.resource_id().size() > 0) {

    resource_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.resource_id_);
  }
  if (from.push_url().size() > 0) {

    push_url_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.push_url_);
  }
  if (from.subscriber_email().size() > 0) {

    subscriber_email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.subscriber_email_);
  }
  if (from.has_creation_time()) {
    mutable_creation_time()->::google::protobuf::Timestamp::MergeFrom(from.creation_time());
  }
}

void ListChannelsResponse_Items::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListChannelsResponse.Items)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListChannelsResponse_Items::CopyFrom(const ListChannelsResponse_Items& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListChannelsResponse.Items)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListChannelsResponse_Items::IsInitialized() const {
  return true;
}

void ListChannelsResponse_Items::Swap(ListChannelsResponse_Items* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListChannelsResponse_Items::InternalSwap(ListChannelsResponse_Items* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  channel_id_.Swap(&other->channel_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  resource_id_.Swap(&other->resource_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  push_url_.Swap(&other->push_url_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  subscriber_email_.Swap(&other->subscriber_email_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(creation_time_, other->creation_time_);
}

::google::protobuf::Metadata ListChannelsResponse_Items::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListChannelsResponse::InitAsDefaultInstance() {
}
class ListChannelsResponse::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListChannelsResponse::kItemsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListChannelsResponse::ListChannelsResponse()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListChannelsResponse)
}
ListChannelsResponse::ListChannelsResponse(const ListChannelsResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      items_(from.items_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListChannelsResponse)
}

void ListChannelsResponse::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListChannelsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
}

ListChannelsResponse::~ListChannelsResponse() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListChannelsResponse)
  SharedDtor();
}

void ListChannelsResponse::SharedDtor() {
}

void ListChannelsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListChannelsResponse& ListChannelsResponse::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListChannelsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListChannelsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListChannelsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  items_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListChannelsResponse::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListChannelsResponse*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.ListChannelsResponse.Items items = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::ListChannelsResponse_Items::_InternalParse;
          object = msg->add_items();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListChannelsResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListChannelsResponse)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.ListChannelsResponse.Items items = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_items()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListChannelsResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListChannelsResponse)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListChannelsResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListChannelsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.ListChannelsResponse.Items items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->items(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListChannelsResponse)
}

::google::protobuf::uint8* ListChannelsResponse::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListChannelsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.ListChannelsResponse.Items items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->items(static_cast<int>(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListChannelsResponse)
  return target;
}

size_t ListChannelsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListChannelsResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.ListChannelsResponse.Items items = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->items_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->items(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListChannelsResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListChannelsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ListChannelsResponse* source =
      ::google::protobuf::DynamicCastToGenerated<ListChannelsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListChannelsResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListChannelsResponse)
    MergeFrom(*source);
  }
}

void ListChannelsResponse::MergeFrom(const ListChannelsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListChannelsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  items_.MergeFrom(from.items_);
}

void ListChannelsResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListChannelsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListChannelsResponse::CopyFrom(const ListChannelsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListChannelsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListChannelsResponse::IsInitialized() const {
  return true;
}

void ListChannelsResponse::Swap(ListChannelsResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListChannelsResponse::InternalSwap(ListChannelsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&items_)->InternalSwap(CastToBase(&other->items_));
}

::google::protobuf::Metadata ListChannelsResponse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ChecksummedData::InitAsDefaultInstance() {
  ::google::storage::v1::_ChecksummedData_default_instance_._instance.get_mutable()->crc32c_ = const_cast< ::google::protobuf::UInt32Value*>(
      ::google::protobuf::UInt32Value::internal_default_instance());
}
class ChecksummedData::HasBitSetters {
 public:
  static const ::google::protobuf::UInt32Value& crc32c(const ChecksummedData* msg);
};

const ::google::protobuf::UInt32Value&
ChecksummedData::HasBitSetters::crc32c(const ChecksummedData* msg) {
  return *msg->crc32c_;
}
void ChecksummedData::clear_crc32c() {
  if (GetArenaNoVirtual() == nullptr && crc32c_ != nullptr) {
    delete crc32c_;
  }
  crc32c_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ChecksummedData::kContentFieldNumber;
const int ChecksummedData::kCrc32CFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ChecksummedData::ChecksummedData()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ChecksummedData)
}
ChecksummedData::ChecksummedData(const ChecksummedData& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  content_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.content().size() > 0) {
    content_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_);
  }
  if (from.has_crc32c()) {
    crc32c_ = new ::google::protobuf::UInt32Value(*from.crc32c_);
  } else {
    crc32c_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ChecksummedData)
}

void ChecksummedData::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ChecksummedData_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  content_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  crc32c_ = nullptr;
}

ChecksummedData::~ChecksummedData() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ChecksummedData)
  SharedDtor();
}

void ChecksummedData::SharedDtor() {
  content_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete crc32c_;
}

void ChecksummedData::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ChecksummedData& ChecksummedData::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ChecksummedData_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ChecksummedData::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ChecksummedData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  content_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && crc32c_ != nullptr) {
    delete crc32c_;
  }
  crc32c_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ChecksummedData::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ChecksummedData*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // bytes content = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        object = msg->mutable_content();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParser;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheck(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.UInt32Value crc32c = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::UInt32Value::_InternalParse;
        object = msg->mutable_crc32c();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ChecksummedData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ChecksummedData)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // bytes content = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_content()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.UInt32Value crc32c = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_crc32c()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ChecksummedData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ChecksummedData)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ChecksummedData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ChecksummedData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bytes content = 1;
  if (this->content().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      1, this->content(), output);
  }

  // .google.protobuf.UInt32Value crc32c = 2;
  if (this->has_crc32c()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::crc32c(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ChecksummedData)
}

::google::protobuf::uint8* ChecksummedData::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ChecksummedData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // bytes content = 1;
  if (this->content().size() > 0) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        1, this->content(), target);
  }

  // .google.protobuf.UInt32Value crc32c = 2;
  if (this->has_crc32c()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::crc32c(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ChecksummedData)
  return target;
}

size_t ChecksummedData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ChecksummedData)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // bytes content = 1;
  if (this->content().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::BytesSize(
        this->content());
  }

  // .google.protobuf.UInt32Value crc32c = 2;
  if (this->has_crc32c()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *crc32c_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ChecksummedData::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ChecksummedData)
  GOOGLE_DCHECK_NE(&from, this);
  const ChecksummedData* source =
      ::google::protobuf::DynamicCastToGenerated<ChecksummedData>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ChecksummedData)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ChecksummedData)
    MergeFrom(*source);
  }
}

void ChecksummedData::MergeFrom(const ChecksummedData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ChecksummedData)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.content().size() > 0) {

    content_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_);
  }
  if (from.has_crc32c()) {
    mutable_crc32c()->::google::protobuf::UInt32Value::MergeFrom(from.crc32c());
  }
}

void ChecksummedData::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ChecksummedData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ChecksummedData::CopyFrom(const ChecksummedData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ChecksummedData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ChecksummedData::IsInitialized() const {
  return true;
}

void ChecksummedData::Swap(ChecksummedData* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ChecksummedData::InternalSwap(ChecksummedData* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  content_.Swap(&other->content_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(crc32c_, other->crc32c_);
}

::google::protobuf::Metadata ChecksummedData::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ObjectChecksums::InitAsDefaultInstance() {
  ::google::storage::v1::_ObjectChecksums_default_instance_._instance.get_mutable()->crc32c_ = const_cast< ::google::protobuf::UInt32Value*>(
      ::google::protobuf::UInt32Value::internal_default_instance());
}
class ObjectChecksums::HasBitSetters {
 public:
  static const ::google::protobuf::UInt32Value& crc32c(const ObjectChecksums* msg);
};

const ::google::protobuf::UInt32Value&
ObjectChecksums::HasBitSetters::crc32c(const ObjectChecksums* msg) {
  return *msg->crc32c_;
}
void ObjectChecksums::clear_crc32c() {
  if (GetArenaNoVirtual() == nullptr && crc32c_ != nullptr) {
    delete crc32c_;
  }
  crc32c_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ObjectChecksums::kCrc32CFieldNumber;
const int ObjectChecksums::kMd5HashFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ObjectChecksums::ObjectChecksums()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ObjectChecksums)
}
ObjectChecksums::ObjectChecksums(const ObjectChecksums& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  md5_hash_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.md5_hash().size() > 0) {
    md5_hash_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.md5_hash_);
  }
  if (from.has_crc32c()) {
    crc32c_ = new ::google::protobuf::UInt32Value(*from.crc32c_);
  } else {
    crc32c_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ObjectChecksums)
}

void ObjectChecksums::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ObjectChecksums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  md5_hash_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  crc32c_ = nullptr;
}

ObjectChecksums::~ObjectChecksums() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ObjectChecksums)
  SharedDtor();
}

void ObjectChecksums::SharedDtor() {
  md5_hash_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete crc32c_;
}

void ObjectChecksums::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ObjectChecksums& ObjectChecksums::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ObjectChecksums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ObjectChecksums::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ObjectChecksums)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  md5_hash_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && crc32c_ != nullptr) {
    delete crc32c_;
  }
  crc32c_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ObjectChecksums::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ObjectChecksums*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // .google.protobuf.UInt32Value crc32c = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::UInt32Value::_InternalParse;
        object = msg->mutable_crc32c();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string md5_hash = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectChecksums.md5_hash");
        object = msg->mutable_md5_hash();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ObjectChecksums::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ObjectChecksums)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.UInt32Value crc32c = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_crc32c()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string md5_hash = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_md5_hash()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->md5_hash().data(), static_cast<int>(this->md5_hash().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectChecksums.md5_hash"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ObjectChecksums)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ObjectChecksums)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ObjectChecksums::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ObjectChecksums)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.UInt32Value crc32c = 1;
  if (this->has_crc32c()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::crc32c(this), output);
  }

  // string md5_hash = 2;
  if (this->md5_hash().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->md5_hash().data(), static_cast<int>(this->md5_hash().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectChecksums.md5_hash");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->md5_hash(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ObjectChecksums)
}

::google::protobuf::uint8* ObjectChecksums::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ObjectChecksums)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.UInt32Value crc32c = 1;
  if (this->has_crc32c()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::crc32c(this), target);
  }

  // string md5_hash = 2;
  if (this->md5_hash().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->md5_hash().data(), static_cast<int>(this->md5_hash().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectChecksums.md5_hash");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->md5_hash(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ObjectChecksums)
  return target;
}

size_t ObjectChecksums::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ObjectChecksums)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string md5_hash = 2;
  if (this->md5_hash().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->md5_hash());
  }

  // .google.protobuf.UInt32Value crc32c = 1;
  if (this->has_crc32c()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *crc32c_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ObjectChecksums::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ObjectChecksums)
  GOOGLE_DCHECK_NE(&from, this);
  const ObjectChecksums* source =
      ::google::protobuf::DynamicCastToGenerated<ObjectChecksums>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ObjectChecksums)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ObjectChecksums)
    MergeFrom(*source);
  }
}

void ObjectChecksums::MergeFrom(const ObjectChecksums& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ObjectChecksums)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.md5_hash().size() > 0) {

    md5_hash_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.md5_hash_);
  }
  if (from.has_crc32c()) {
    mutable_crc32c()->::google::protobuf::UInt32Value::MergeFrom(from.crc32c());
  }
}

void ObjectChecksums::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ObjectChecksums)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ObjectChecksums::CopyFrom(const ObjectChecksums& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ObjectChecksums)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ObjectChecksums::IsInitialized() const {
  return true;
}

void ObjectChecksums::Swap(ObjectChecksums* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ObjectChecksums::InternalSwap(ObjectChecksums* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  md5_hash_.Swap(&other->md5_hash_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(crc32c_, other->crc32c_);
}

::google::protobuf::Metadata ObjectChecksums::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void CommonEnums::InitAsDefaultInstance() {
}
class CommonEnums::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

CommonEnums::CommonEnums()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.CommonEnums)
}
CommonEnums::CommonEnums(const CommonEnums& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.CommonEnums)
}

void CommonEnums::SharedCtor() {
}

CommonEnums::~CommonEnums() {
  // @@protoc_insertion_point(destructor:google.storage.v1.CommonEnums)
  SharedDtor();
}

void CommonEnums::SharedDtor() {
}

void CommonEnums::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const CommonEnums& CommonEnums::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_CommonEnums_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void CommonEnums::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.CommonEnums)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* CommonEnums::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<CommonEnums*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      default: {
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool CommonEnums::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.CommonEnums)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
  handle_unusual:
    if (tag == 0) {
      goto success;
    }
    DO_(::google::protobuf::internal::WireFormat::SkipField(
          input, tag, _internal_metadata_.mutable_unknown_fields()));
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.CommonEnums)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.CommonEnums)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void CommonEnums::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.CommonEnums)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.CommonEnums)
}

::google::protobuf::uint8* CommonEnums::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.CommonEnums)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.CommonEnums)
  return target;
}

size_t CommonEnums::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.CommonEnums)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void CommonEnums::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.CommonEnums)
  GOOGLE_DCHECK_NE(&from, this);
  const CommonEnums* source =
      ::google::protobuf::DynamicCastToGenerated<CommonEnums>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.CommonEnums)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.CommonEnums)
    MergeFrom(*source);
  }
}

void CommonEnums::MergeFrom(const CommonEnums& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.CommonEnums)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

}

void CommonEnums::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.CommonEnums)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void CommonEnums::CopyFrom(const CommonEnums& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.CommonEnums)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CommonEnums::IsInitialized() const {
  return true;
}

void CommonEnums::Swap(CommonEnums* other) {
  if (other == this) return;
  InternalSwap(other);
}
void CommonEnums::InternalSwap(CommonEnums* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata CommonEnums::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ContentRange::InitAsDefaultInstance() {
}
class ContentRange::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ContentRange::kStartFieldNumber;
const int ContentRange::kEndFieldNumber;
const int ContentRange::kCompleteLengthFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ContentRange::ContentRange()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ContentRange)
}
ContentRange::ContentRange(const ContentRange& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::memcpy(&start_, &from.start_,
    static_cast<size_t>(reinterpret_cast<char*>(&complete_length_) -
    reinterpret_cast<char*>(&start_)) + sizeof(complete_length_));
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ContentRange)
}

void ContentRange::SharedCtor() {
  ::memset(&start_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&complete_length_) -
      reinterpret_cast<char*>(&start_)) + sizeof(complete_length_));
}

ContentRange::~ContentRange() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ContentRange)
  SharedDtor();
}

void ContentRange::SharedDtor() {
}

void ContentRange::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ContentRange& ContentRange::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ContentRange_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ContentRange::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ContentRange)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&start_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&complete_length_) -
      reinterpret_cast<char*>(&start_)) + sizeof(complete_length_));
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ContentRange::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ContentRange*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // int64 start = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
        msg->set_start(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // int64 end = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
        msg->set_end(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // int64 complete_length = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
        msg->set_complete_length(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ContentRange::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ContentRange)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int64 start = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &start_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 end = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &end_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 complete_length = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &complete_length_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ContentRange)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ContentRange)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ContentRange::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ContentRange)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 start = 1;
  if (this->start() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(1, this->start(), output);
  }

  // int64 end = 2;
  if (this->end() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->end(), output);
  }

  // int64 complete_length = 3;
  if (this->complete_length() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->complete_length(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ContentRange)
}

::google::protobuf::uint8* ContentRange::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ContentRange)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int64 start = 1;
  if (this->start() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(1, this->start(), target);
  }

  // int64 end = 2;
  if (this->end() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->end(), target);
  }

  // int64 complete_length = 3;
  if (this->complete_length() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->complete_length(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ContentRange)
  return target;
}

size_t ContentRange::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ContentRange)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // int64 start = 1;
  if (this->start() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->start());
  }

  // int64 end = 2;
  if (this->end() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->end());
  }

  // int64 complete_length = 3;
  if (this->complete_length() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->complete_length());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ContentRange::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ContentRange)
  GOOGLE_DCHECK_NE(&from, this);
  const ContentRange* source =
      ::google::protobuf::DynamicCastToGenerated<ContentRange>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ContentRange)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ContentRange)
    MergeFrom(*source);
  }
}

void ContentRange::MergeFrom(const ContentRange& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ContentRange)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.start() != 0) {
    set_start(from.start());
  }
  if (from.end() != 0) {
    set_end(from.end());
  }
  if (from.complete_length() != 0) {
    set_complete_length(from.complete_length());
  }
}

void ContentRange::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ContentRange)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ContentRange::CopyFrom(const ContentRange& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ContentRange)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ContentRange::IsInitialized() const {
  return true;
}

void ContentRange::Swap(ContentRange* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ContentRange::InternalSwap(ContentRange* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(start_, other->start_);
  swap(end_, other->end_);
  swap(complete_length_, other->complete_length_);
}

::google::protobuf::Metadata ContentRange::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void HmacKeyMetadata::InitAsDefaultInstance() {
  ::google::storage::v1::_HmacKeyMetadata_default_instance_._instance.get_mutable()->time_created_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_HmacKeyMetadata_default_instance_._instance.get_mutable()->updated_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
}
class HmacKeyMetadata::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& time_created(const HmacKeyMetadata* msg);
  static const ::google::protobuf::Timestamp& updated(const HmacKeyMetadata* msg);
};

const ::google::protobuf::Timestamp&
HmacKeyMetadata::HasBitSetters::time_created(const HmacKeyMetadata* msg) {
  return *msg->time_created_;
}
const ::google::protobuf::Timestamp&
HmacKeyMetadata::HasBitSetters::updated(const HmacKeyMetadata* msg) {
  return *msg->updated_;
}
void HmacKeyMetadata::clear_time_created() {
  if (GetArenaNoVirtual() == nullptr && time_created_ != nullptr) {
    delete time_created_;
  }
  time_created_ = nullptr;
}
void HmacKeyMetadata::clear_updated() {
  if (GetArenaNoVirtual() == nullptr && updated_ != nullptr) {
    delete updated_;
  }
  updated_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int HmacKeyMetadata::kIdFieldNumber;
const int HmacKeyMetadata::kAccessIdFieldNumber;
const int HmacKeyMetadata::kProjectIdFieldNumber;
const int HmacKeyMetadata::kServiceAccountEmailFieldNumber;
const int HmacKeyMetadata::kStateFieldNumber;
const int HmacKeyMetadata::kTimeCreatedFieldNumber;
const int HmacKeyMetadata::kUpdatedFieldNumber;
const int HmacKeyMetadata::kEtagFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

HmacKeyMetadata::HmacKeyMetadata()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.HmacKeyMetadata)
}
HmacKeyMetadata::HmacKeyMetadata(const HmacKeyMetadata& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  access_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.access_id().size() > 0) {
    access_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.access_id_);
  }
  project_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.project_id().size() > 0) {
    project_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_id_);
  }
  service_account_email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.service_account_email().size() > 0) {
    service_account_email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.service_account_email_);
  }
  state_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.state().size() > 0) {
    state_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.state_);
  }
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.etag().size() > 0) {
    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.has_time_created()) {
    time_created_ = new ::google::protobuf::Timestamp(*from.time_created_);
  } else {
    time_created_ = nullptr;
  }
  if (from.has_updated()) {
    updated_ = new ::google::protobuf::Timestamp(*from.updated_);
  } else {
    updated_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.HmacKeyMetadata)
}

void HmacKeyMetadata::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_HmacKeyMetadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  access_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  project_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  service_account_email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  state_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&time_created_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&updated_) -
      reinterpret_cast<char*>(&time_created_)) + sizeof(updated_));
}

HmacKeyMetadata::~HmacKeyMetadata() {
  // @@protoc_insertion_point(destructor:google.storage.v1.HmacKeyMetadata)
  SharedDtor();
}

void HmacKeyMetadata::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  access_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  project_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  service_account_email_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  state_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete time_created_;
  if (this != internal_default_instance()) delete updated_;
}

void HmacKeyMetadata::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const HmacKeyMetadata& HmacKeyMetadata::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_HmacKeyMetadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void HmacKeyMetadata::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.HmacKeyMetadata)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  access_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  project_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  service_account_email_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  state_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && time_created_ != nullptr) {
    delete time_created_;
  }
  time_created_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && updated_ != nullptr) {
    delete updated_;
  }
  updated_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* HmacKeyMetadata::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<HmacKeyMetadata*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.HmacKeyMetadata.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string access_id = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.HmacKeyMetadata.access_id");
        object = msg->mutable_access_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string project_id = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.HmacKeyMetadata.project_id");
        object = msg->mutable_project_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string service_account_email = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.HmacKeyMetadata.service_account_email");
        object = msg->mutable_service_account_email();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string state = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.HmacKeyMetadata.state");
        object = msg->mutable_state();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Timestamp time_created = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_time_created();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.protobuf.Timestamp updated = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_updated();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string etag = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.HmacKeyMetadata.etag");
        object = msg->mutable_etag();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool HmacKeyMetadata::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.HmacKeyMetadata)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.HmacKeyMetadata.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string access_id = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_access_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->access_id().data(), static_cast<int>(this->access_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.HmacKeyMetadata.access_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string project_id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_project_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->project_id().data(), static_cast<int>(this->project_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.HmacKeyMetadata.project_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string service_account_email = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_service_account_email()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->service_account_email().data(), static_cast<int>(this->service_account_email().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.HmacKeyMetadata.service_account_email"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string state = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_state()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->state().data(), static_cast<int>(this->state().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.HmacKeyMetadata.state"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp time_created = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_time_created()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp updated = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_updated()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string etag = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_etag()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->etag().data(), static_cast<int>(this->etag().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.HmacKeyMetadata.etag"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.HmacKeyMetadata)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.HmacKeyMetadata)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void HmacKeyMetadata::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.HmacKeyMetadata)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string access_id = 2;
  if (this->access_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->access_id().data(), static_cast<int>(this->access_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.access_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->access_id(), output);
  }

  // string project_id = 3;
  if (this->project_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->project_id().data(), static_cast<int>(this->project_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.project_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->project_id(), output);
  }

  // string service_account_email = 4;
  if (this->service_account_email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->service_account_email().data(), static_cast<int>(this->service_account_email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.service_account_email");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->service_account_email(), output);
  }

  // string state = 5;
  if (this->state().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->state().data(), static_cast<int>(this->state().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.state");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->state(), output);
  }

  // .google.protobuf.Timestamp time_created = 6;
  if (this->has_time_created()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, HasBitSetters::time_created(this), output);
  }

  // .google.protobuf.Timestamp updated = 7;
  if (this->has_updated()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, HasBitSetters::updated(this), output);
  }

  // string etag = 8;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.etag");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->etag(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.HmacKeyMetadata)
}

::google::protobuf::uint8* HmacKeyMetadata::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.HmacKeyMetadata)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string access_id = 2;
  if (this->access_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->access_id().data(), static_cast<int>(this->access_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.access_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->access_id(), target);
  }

  // string project_id = 3;
  if (this->project_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->project_id().data(), static_cast<int>(this->project_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.project_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->project_id(), target);
  }

  // string service_account_email = 4;
  if (this->service_account_email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->service_account_email().data(), static_cast<int>(this->service_account_email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.service_account_email");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->service_account_email(), target);
  }

  // string state = 5;
  if (this->state().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->state().data(), static_cast<int>(this->state().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.state");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->state(), target);
  }

  // .google.protobuf.Timestamp time_created = 6;
  if (this->has_time_created()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, HasBitSetters::time_created(this), target);
  }

  // .google.protobuf.Timestamp updated = 7;
  if (this->has_updated()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, HasBitSetters::updated(this), target);
  }

  // string etag = 8;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.HmacKeyMetadata.etag");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->etag(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.HmacKeyMetadata)
  return target;
}

size_t HmacKeyMetadata::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.HmacKeyMetadata)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string access_id = 2;
  if (this->access_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->access_id());
  }

  // string project_id = 3;
  if (this->project_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->project_id());
  }

  // string service_account_email = 4;
  if (this->service_account_email().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->service_account_email());
  }

  // string state = 5;
  if (this->state().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->state());
  }

  // string etag = 8;
  if (this->etag().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->etag());
  }

  // .google.protobuf.Timestamp time_created = 6;
  if (this->has_time_created()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *time_created_);
  }

  // .google.protobuf.Timestamp updated = 7;
  if (this->has_updated()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *updated_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void HmacKeyMetadata::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.HmacKeyMetadata)
  GOOGLE_DCHECK_NE(&from, this);
  const HmacKeyMetadata* source =
      ::google::protobuf::DynamicCastToGenerated<HmacKeyMetadata>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.HmacKeyMetadata)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.HmacKeyMetadata)
    MergeFrom(*source);
  }
}

void HmacKeyMetadata::MergeFrom(const HmacKeyMetadata& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.HmacKeyMetadata)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.access_id().size() > 0) {

    access_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.access_id_);
  }
  if (from.project_id().size() > 0) {

    project_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_id_);
  }
  if (from.service_account_email().size() > 0) {

    service_account_email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.service_account_email_);
  }
  if (from.state().size() > 0) {

    state_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.state_);
  }
  if (from.etag().size() > 0) {

    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.has_time_created()) {
    mutable_time_created()->::google::protobuf::Timestamp::MergeFrom(from.time_created());
  }
  if (from.has_updated()) {
    mutable_updated()->::google::protobuf::Timestamp::MergeFrom(from.updated());
  }
}

void HmacKeyMetadata::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.HmacKeyMetadata)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void HmacKeyMetadata::CopyFrom(const HmacKeyMetadata& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.HmacKeyMetadata)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool HmacKeyMetadata::IsInitialized() const {
  return true;
}

void HmacKeyMetadata::Swap(HmacKeyMetadata* other) {
  if (other == this) return;
  InternalSwap(other);
}
void HmacKeyMetadata::InternalSwap(HmacKeyMetadata* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  access_id_.Swap(&other->access_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  project_id_.Swap(&other->project_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  service_account_email_.Swap(&other->service_account_email_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  state_.Swap(&other->state_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  etag_.Swap(&other->etag_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(time_created_, other->time_created_);
  swap(updated_, other->updated_);
}

::google::protobuf::Metadata HmacKeyMetadata::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

Notification_CustomAttributesEntry_DoNotUse::Notification_CustomAttributesEntry_DoNotUse() {}
Notification_CustomAttributesEntry_DoNotUse::Notification_CustomAttributesEntry_DoNotUse(::google::protobuf::Arena* arena)
    : SuperType(arena) {}
void Notification_CustomAttributesEntry_DoNotUse::MergeFrom(const Notification_CustomAttributesEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata Notification_CustomAttributesEntry_DoNotUse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[27];
}
void Notification_CustomAttributesEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Notification_CustomAttributesEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
  using MF = ::google::protobuf::internal::MapField<
      Notification_CustomAttributesEntry_DoNotUse, EntryKeyType, EntryValueType,
      kEntryKeyFieldType, kEntryValueFieldType,
      kEntryDefaultEnumValue>;
  auto mf = static_cast<MF*>(object);
  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
#define DO_(x) if (!(x)) return false
  DO_(parser.ParseMap(begin, end));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.key().data(), static_cast<int>(parser.key().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Notification.CustomAttributesEntry.key"));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.value().data(), static_cast<int>(parser.value().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Notification.CustomAttributesEntry.value"));
#undef DO_
  return true;
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER


// ===================================================================

void Notification::InitAsDefaultInstance() {
}
class Notification::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Notification::kTopicFieldNumber;
const int Notification::kEventTypesFieldNumber;
const int Notification::kCustomAttributesFieldNumber;
const int Notification::kEtagFieldNumber;
const int Notification::kObjectNamePrefixFieldNumber;
const int Notification::kPayloadFormatFieldNumber;
const int Notification::kIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Notification::Notification()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Notification)
}
Notification::Notification(const Notification& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      event_types_(from.event_types_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  custom_attributes_.MergeFrom(from.custom_attributes_);
  topic_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.topic().size() > 0) {
    topic_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.topic_);
  }
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.etag().size() > 0) {
    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  object_name_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.object_name_prefix().size() > 0) {
    object_name_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_name_prefix_);
  }
  payload_format_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.payload_format().size() > 0) {
    payload_format_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.payload_format_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Notification)
}

void Notification::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Notification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  topic_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  object_name_prefix_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  payload_format_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Notification::~Notification() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Notification)
  SharedDtor();
}

void Notification::SharedDtor() {
  topic_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  object_name_prefix_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  payload_format_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Notification::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Notification& Notification::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Notification_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Notification::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Notification)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  event_types_.Clear();
  custom_attributes_.Clear();
  topic_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  object_name_prefix_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  payload_format_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Notification::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Notification*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string topic = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Notification.topic");
        object = msg->mutable_topic();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated string event_types = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.Notification.event_types");
          object = msg->add_event_types();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 18 && (ptr += 1));
        break;
      }
      // map<string, string> custom_attributes = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
          auto parse_map = ::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse::_ParseMap;
          ctx->extra_parse_data().payload.clear();
          ctx->extra_parse_data().parse_map = parse_map;
          object = &msg->custom_attributes_;
          if (size > end - ptr) goto len_delim_till_end;
          auto newend = ptr + size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
          ptr = newend;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 26 && (ptr += 1));
        break;
      }
      // string etag = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Notification.etag");
        object = msg->mutable_etag();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string object_name_prefix = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Notification.object_name_prefix");
        object = msg->mutable_object_name_prefix();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string payload_format = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 50) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Notification.payload_format");
        object = msg->mutable_payload_format();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string id = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Notification.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Notification::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Notification)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string topic = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_topic()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->topic().data(), static_cast<int>(this->topic().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.topic"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string event_types = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_event_types()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->event_types(this->event_types_size() - 1).data(),
            static_cast<int>(this->event_types(this->event_types_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.event_types"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, string> custom_attributes = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          Notification_CustomAttributesEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              Notification_CustomAttributesEntry_DoNotUse,
              ::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(&custom_attributes_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.CustomAttributesEntry.key"));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.CustomAttributesEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string etag = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_etag()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->etag().data(), static_cast<int>(this->etag().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.etag"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string object_name_prefix = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_object_name_prefix()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->object_name_prefix().data(), static_cast<int>(this->object_name_prefix().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.object_name_prefix"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string payload_format = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (50 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_payload_format()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->payload_format().data(), static_cast<int>(this->payload_format().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.payload_format"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Notification.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Notification)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Notification)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Notification::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Notification)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string topic = 1;
  if (this->topic().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->topic().data(), static_cast<int>(this->topic().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.topic");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->topic(), output);
  }

  // repeated string event_types = 2;
  for (int i = 0, n = this->event_types_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->event_types(i).data(), static_cast<int>(this->event_types(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.event_types");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      2, this->event_types(i), output);
  }

  // map<string, string> custom_attributes = 3;
  if (!this->custom_attributes().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Notification.CustomAttributesEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Notification.CustomAttributesEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->custom_attributes().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->custom_attributes().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->custom_attributes().begin();
          it != this->custom_attributes().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Notification_CustomAttributesEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(custom_attributes_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(3, *entry, output);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Notification_CustomAttributesEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->custom_attributes().begin();
          it != this->custom_attributes().end(); ++it) {
        entry.reset(custom_attributes_.NewEntryWrapper(it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(3, *entry, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // string etag = 4;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.etag");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->etag(), output);
  }

  // string object_name_prefix = 5;
  if (this->object_name_prefix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->object_name_prefix().data(), static_cast<int>(this->object_name_prefix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.object_name_prefix");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->object_name_prefix(), output);
  }

  // string payload_format = 6;
  if (this->payload_format().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->payload_format().data(), static_cast<int>(this->payload_format().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.payload_format");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->payload_format(), output);
  }

  // string id = 7;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Notification)
}

::google::protobuf::uint8* Notification::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Notification)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string topic = 1;
  if (this->topic().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->topic().data(), static_cast<int>(this->topic().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.topic");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->topic(), target);
  }

  // repeated string event_types = 2;
  for (int i = 0, n = this->event_types_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->event_types(i).data(), static_cast<int>(this->event_types(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.event_types");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(2, this->event_types(i), target);
  }

  // map<string, string> custom_attributes = 3;
  if (!this->custom_attributes().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Notification.CustomAttributesEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Notification.CustomAttributesEntry.value");
      }
    };

    if (false &&
        this->custom_attributes().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->custom_attributes().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->custom_attributes().begin();
          it != this->custom_attributes().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Notification_CustomAttributesEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(custom_attributes_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(3, *entry, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Notification_CustomAttributesEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->custom_attributes().begin();
          it != this->custom_attributes().end(); ++it) {
        entry.reset(custom_attributes_.NewEntryWrapper(it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(3, *entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // string etag = 4;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.etag");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->etag(), target);
  }

  // string object_name_prefix = 5;
  if (this->object_name_prefix().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->object_name_prefix().data(), static_cast<int>(this->object_name_prefix().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.object_name_prefix");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->object_name_prefix(), target);
  }

  // string payload_format = 6;
  if (this->payload_format().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->payload_format().data(), static_cast<int>(this->payload_format().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.payload_format");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->payload_format(), target);
  }

  // string id = 7;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Notification.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Notification)
  return target;
}

size_t Notification::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Notification)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string event_types = 2;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->event_types_size());
  for (int i = 0, n = this->event_types_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->event_types(i));
  }

  // map<string, string> custom_attributes = 3;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->custom_attributes_size());
  {
    ::std::unique_ptr<Notification_CustomAttributesEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
        it = this->custom_attributes().begin();
        it != this->custom_attributes().end(); ++it) {
      entry.reset(custom_attributes_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // string topic = 1;
  if (this->topic().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->topic());
  }

  // string etag = 4;
  if (this->etag().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->etag());
  }

  // string object_name_prefix = 5;
  if (this->object_name_prefix().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->object_name_prefix());
  }

  // string payload_format = 6;
  if (this->payload_format().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->payload_format());
  }

  // string id = 7;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Notification::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Notification)
  GOOGLE_DCHECK_NE(&from, this);
  const Notification* source =
      ::google::protobuf::DynamicCastToGenerated<Notification>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Notification)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Notification)
    MergeFrom(*source);
  }
}

void Notification::MergeFrom(const Notification& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Notification)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  event_types_.MergeFrom(from.event_types_);
  custom_attributes_.MergeFrom(from.custom_attributes_);
  if (from.topic().size() > 0) {

    topic_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.topic_);
  }
  if (from.etag().size() > 0) {

    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.object_name_prefix().size() > 0) {

    object_name_prefix_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_name_prefix_);
  }
  if (from.payload_format().size() > 0) {

    payload_format_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.payload_format_);
  }
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
}

void Notification::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Notification)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Notification::CopyFrom(const Notification& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Notification)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Notification::IsInitialized() const {
  return true;
}

void Notification::Swap(Notification* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Notification::InternalSwap(Notification* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  event_types_.InternalSwap(CastToBase(&other->event_types_));
  custom_attributes_.Swap(&other->custom_attributes_);
  topic_.Swap(&other->topic_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  etag_.Swap(&other->etag_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  object_name_prefix_.Swap(&other->object_name_prefix_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  payload_format_.Swap(&other->payload_format_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Notification::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListNotificationsResponse::InitAsDefaultInstance() {
}
class ListNotificationsResponse::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListNotificationsResponse::kItemsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListNotificationsResponse::ListNotificationsResponse()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListNotificationsResponse)
}
ListNotificationsResponse::ListNotificationsResponse(const ListNotificationsResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      items_(from.items_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListNotificationsResponse)
}

void ListNotificationsResponse::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListNotificationsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
}

ListNotificationsResponse::~ListNotificationsResponse() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListNotificationsResponse)
  SharedDtor();
}

void ListNotificationsResponse::SharedDtor() {
}

void ListNotificationsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListNotificationsResponse& ListNotificationsResponse::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListNotificationsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListNotificationsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListNotificationsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  items_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListNotificationsResponse::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListNotificationsResponse*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.Notification items = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::Notification::_InternalParse;
          object = msg->add_items();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListNotificationsResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListNotificationsResponse)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.Notification items = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_items()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListNotificationsResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListNotificationsResponse)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListNotificationsResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListNotificationsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.Notification items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->items(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListNotificationsResponse)
}

::google::protobuf::uint8* ListNotificationsResponse::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListNotificationsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.Notification items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->items(static_cast<int>(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListNotificationsResponse)
  return target;
}

size_t ListNotificationsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListNotificationsResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.Notification items = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->items_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->items(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListNotificationsResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListNotificationsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ListNotificationsResponse* source =
      ::google::protobuf::DynamicCastToGenerated<ListNotificationsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListNotificationsResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListNotificationsResponse)
    MergeFrom(*source);
  }
}

void ListNotificationsResponse::MergeFrom(const ListNotificationsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListNotificationsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  items_.MergeFrom(from.items_);
}

void ListNotificationsResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListNotificationsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListNotificationsResponse::CopyFrom(const ListNotificationsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListNotificationsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListNotificationsResponse::IsInitialized() const {
  return true;
}

void ListNotificationsResponse::Swap(ListNotificationsResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListNotificationsResponse::InternalSwap(ListNotificationsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&items_)->InternalSwap(CastToBase(&other->items_));
}

::google::protobuf::Metadata ListNotificationsResponse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Object_CustomerEncryption::InitAsDefaultInstance() {
}
class Object_CustomerEncryption::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Object_CustomerEncryption::kEncryptionAlgorithmFieldNumber;
const int Object_CustomerEncryption::kKeySha256FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Object_CustomerEncryption::Object_CustomerEncryption()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Object.CustomerEncryption)
}
Object_CustomerEncryption::Object_CustomerEncryption(const Object_CustomerEncryption& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  encryption_algorithm_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.encryption_algorithm().size() > 0) {
    encryption_algorithm_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.encryption_algorithm_);
  }
  key_sha256_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.key_sha256().size() > 0) {
    key_sha256_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_sha256_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Object.CustomerEncryption)
}

void Object_CustomerEncryption::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Object_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  encryption_algorithm_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  key_sha256_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Object_CustomerEncryption::~Object_CustomerEncryption() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Object.CustomerEncryption)
  SharedDtor();
}

void Object_CustomerEncryption::SharedDtor() {
  encryption_algorithm_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  key_sha256_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Object_CustomerEncryption::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Object_CustomerEncryption& Object_CustomerEncryption::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Object_CustomerEncryption_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Object_CustomerEncryption::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Object.CustomerEncryption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  encryption_algorithm_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  key_sha256_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Object_CustomerEncryption::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Object_CustomerEncryption*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string encryption_algorithm = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.CustomerEncryption.encryption_algorithm");
        object = msg->mutable_encryption_algorithm();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string key_sha256 = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.CustomerEncryption.key_sha256");
        object = msg->mutable_key_sha256();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Object_CustomerEncryption::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Object.CustomerEncryption)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string encryption_algorithm = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_encryption_algorithm()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->encryption_algorithm().data(), static_cast<int>(this->encryption_algorithm().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.CustomerEncryption.encryption_algorithm"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string key_sha256 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_key_sha256()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->key_sha256().data(), static_cast<int>(this->key_sha256().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.CustomerEncryption.key_sha256"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Object.CustomerEncryption)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Object.CustomerEncryption)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Object_CustomerEncryption::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Object.CustomerEncryption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string encryption_algorithm = 1;
  if (this->encryption_algorithm().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->encryption_algorithm().data(), static_cast<int>(this->encryption_algorithm().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.CustomerEncryption.encryption_algorithm");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->encryption_algorithm(), output);
  }

  // string key_sha256 = 2;
  if (this->key_sha256().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->key_sha256().data(), static_cast<int>(this->key_sha256().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.CustomerEncryption.key_sha256");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->key_sha256(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Object.CustomerEncryption)
}

::google::protobuf::uint8* Object_CustomerEncryption::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Object.CustomerEncryption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string encryption_algorithm = 1;
  if (this->encryption_algorithm().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->encryption_algorithm().data(), static_cast<int>(this->encryption_algorithm().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.CustomerEncryption.encryption_algorithm");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->encryption_algorithm(), target);
  }

  // string key_sha256 = 2;
  if (this->key_sha256().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->key_sha256().data(), static_cast<int>(this->key_sha256().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.CustomerEncryption.key_sha256");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->key_sha256(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Object.CustomerEncryption)
  return target;
}

size_t Object_CustomerEncryption::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Object.CustomerEncryption)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string encryption_algorithm = 1;
  if (this->encryption_algorithm().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->encryption_algorithm());
  }

  // string key_sha256 = 2;
  if (this->key_sha256().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->key_sha256());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Object_CustomerEncryption::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Object.CustomerEncryption)
  GOOGLE_DCHECK_NE(&from, this);
  const Object_CustomerEncryption* source =
      ::google::protobuf::DynamicCastToGenerated<Object_CustomerEncryption>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Object.CustomerEncryption)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Object.CustomerEncryption)
    MergeFrom(*source);
  }
}

void Object_CustomerEncryption::MergeFrom(const Object_CustomerEncryption& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Object.CustomerEncryption)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.encryption_algorithm().size() > 0) {

    encryption_algorithm_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.encryption_algorithm_);
  }
  if (from.key_sha256().size() > 0) {

    key_sha256_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_sha256_);
  }
}

void Object_CustomerEncryption::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Object.CustomerEncryption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Object_CustomerEncryption::CopyFrom(const Object_CustomerEncryption& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Object.CustomerEncryption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Object_CustomerEncryption::IsInitialized() const {
  return true;
}

void Object_CustomerEncryption::Swap(Object_CustomerEncryption* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Object_CustomerEncryption::InternalSwap(Object_CustomerEncryption* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  encryption_algorithm_.Swap(&other->encryption_algorithm_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  key_sha256_.Swap(&other->key_sha256_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Object_CustomerEncryption::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

Object_MetadataEntry_DoNotUse::Object_MetadataEntry_DoNotUse() {}
Object_MetadataEntry_DoNotUse::Object_MetadataEntry_DoNotUse(::google::protobuf::Arena* arena)
    : SuperType(arena) {}
void Object_MetadataEntry_DoNotUse::MergeFrom(const Object_MetadataEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata Object_MetadataEntry_DoNotUse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[31];
}
void Object_MetadataEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Object_MetadataEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
  using MF = ::google::protobuf::internal::MapField<
      Object_MetadataEntry_DoNotUse, EntryKeyType, EntryValueType,
      kEntryKeyFieldType, kEntryValueFieldType,
      kEntryDefaultEnumValue>;
  auto mf = static_cast<MF*>(object);
  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
#define DO_(x) if (!(x)) return false
  DO_(parser.ParseMap(begin, end));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.key().data(), static_cast<int>(parser.key().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Object.MetadataEntry.key"));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.value().data(), static_cast<int>(parser.value().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "google.storage.v1.Object.MetadataEntry.value"));
#undef DO_
  return true;
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER


// ===================================================================

void Object::InitAsDefaultInstance() {
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->time_deleted_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->time_created_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->crc32c_ = const_cast< ::google::protobuf::UInt32Value*>(
      ::google::protobuf::UInt32Value::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->updated_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->time_storage_class_updated_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->retention_expiration_time_ = const_cast< ::google::protobuf::Timestamp*>(
      ::google::protobuf::Timestamp::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->event_based_hold_ = const_cast< ::google::protobuf::BoolValue*>(
      ::google::protobuf::BoolValue::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->owner_ = const_cast< ::google::storage::v1::Owner*>(
      ::google::storage::v1::Owner::internal_default_instance());
  ::google::storage::v1::_Object_default_instance_._instance.get_mutable()->customer_encryption_ = const_cast< ::google::storage::v1::Object_CustomerEncryption*>(
      ::google::storage::v1::Object_CustomerEncryption::internal_default_instance());
}
class Object::HasBitSetters {
 public:
  static const ::google::protobuf::Timestamp& time_deleted(const Object* msg);
  static const ::google::protobuf::Timestamp& time_created(const Object* msg);
  static const ::google::protobuf::UInt32Value& crc32c(const Object* msg);
  static const ::google::protobuf::Timestamp& updated(const Object* msg);
  static const ::google::protobuf::Timestamp& time_storage_class_updated(const Object* msg);
  static const ::google::protobuf::Timestamp& retention_expiration_time(const Object* msg);
  static const ::google::protobuf::BoolValue& event_based_hold(const Object* msg);
  static const ::google::storage::v1::Owner& owner(const Object* msg);
  static const ::google::storage::v1::Object_CustomerEncryption& customer_encryption(const Object* msg);
};

const ::google::protobuf::Timestamp&
Object::HasBitSetters::time_deleted(const Object* msg) {
  return *msg->time_deleted_;
}
const ::google::protobuf::Timestamp&
Object::HasBitSetters::time_created(const Object* msg) {
  return *msg->time_created_;
}
const ::google::protobuf::UInt32Value&
Object::HasBitSetters::crc32c(const Object* msg) {
  return *msg->crc32c_;
}
const ::google::protobuf::Timestamp&
Object::HasBitSetters::updated(const Object* msg) {
  return *msg->updated_;
}
const ::google::protobuf::Timestamp&
Object::HasBitSetters::time_storage_class_updated(const Object* msg) {
  return *msg->time_storage_class_updated_;
}
const ::google::protobuf::Timestamp&
Object::HasBitSetters::retention_expiration_time(const Object* msg) {
  return *msg->retention_expiration_time_;
}
const ::google::protobuf::BoolValue&
Object::HasBitSetters::event_based_hold(const Object* msg) {
  return *msg->event_based_hold_;
}
const ::google::storage::v1::Owner&
Object::HasBitSetters::owner(const Object* msg) {
  return *msg->owner_;
}
const ::google::storage::v1::Object_CustomerEncryption&
Object::HasBitSetters::customer_encryption(const Object* msg) {
  return *msg->customer_encryption_;
}
void Object::clear_time_deleted() {
  if (GetArenaNoVirtual() == nullptr && time_deleted_ != nullptr) {
    delete time_deleted_;
  }
  time_deleted_ = nullptr;
}
void Object::clear_time_created() {
  if (GetArenaNoVirtual() == nullptr && time_created_ != nullptr) {
    delete time_created_;
  }
  time_created_ = nullptr;
}
void Object::clear_crc32c() {
  if (GetArenaNoVirtual() == nullptr && crc32c_ != nullptr) {
    delete crc32c_;
  }
  crc32c_ = nullptr;
}
void Object::clear_updated() {
  if (GetArenaNoVirtual() == nullptr && updated_ != nullptr) {
    delete updated_;
  }
  updated_ = nullptr;
}
void Object::clear_time_storage_class_updated() {
  if (GetArenaNoVirtual() == nullptr && time_storage_class_updated_ != nullptr) {
    delete time_storage_class_updated_;
  }
  time_storage_class_updated_ = nullptr;
}
void Object::clear_retention_expiration_time() {
  if (GetArenaNoVirtual() == nullptr && retention_expiration_time_ != nullptr) {
    delete retention_expiration_time_;
  }
  retention_expiration_time_ = nullptr;
}
void Object::clear_event_based_hold() {
  if (GetArenaNoVirtual() == nullptr && event_based_hold_ != nullptr) {
    delete event_based_hold_;
  }
  event_based_hold_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Object::kContentEncodingFieldNumber;
const int Object::kContentDispositionFieldNumber;
const int Object::kCacheControlFieldNumber;
const int Object::kAclFieldNumber;
const int Object::kContentLanguageFieldNumber;
const int Object::kMetagenerationFieldNumber;
const int Object::kTimeDeletedFieldNumber;
const int Object::kContentTypeFieldNumber;
const int Object::kSizeFieldNumber;
const int Object::kTimeCreatedFieldNumber;
const int Object::kCrc32CFieldNumber;
const int Object::kComponentCountFieldNumber;
const int Object::kMd5HashFieldNumber;
const int Object::kEtagFieldNumber;
const int Object::kUpdatedFieldNumber;
const int Object::kStorageClassFieldNumber;
const int Object::kKmsKeyNameFieldNumber;
const int Object::kTimeStorageClassUpdatedFieldNumber;
const int Object::kTemporaryHoldFieldNumber;
const int Object::kRetentionExpirationTimeFieldNumber;
const int Object::kMetadataFieldNumber;
const int Object::kEventBasedHoldFieldNumber;
const int Object::kNameFieldNumber;
const int Object::kIdFieldNumber;
const int Object::kBucketFieldNumber;
const int Object::kGenerationFieldNumber;
const int Object::kOwnerFieldNumber;
const int Object::kCustomerEncryptionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Object::Object()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Object)
}
Object::Object(const Object& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      acl_(from.acl_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  metadata_.MergeFrom(from.metadata_);
  content_encoding_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.content_encoding().size() > 0) {
    content_encoding_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_encoding_);
  }
  content_disposition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.content_disposition().size() > 0) {
    content_disposition_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_disposition_);
  }
  cache_control_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.cache_control().size() > 0) {
    cache_control_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cache_control_);
  }
  content_language_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.content_language().size() > 0) {
    content_language_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_language_);
  }
  content_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.content_type().size() > 0) {
    content_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_type_);
  }
  md5_hash_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.md5_hash().size() > 0) {
    md5_hash_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.md5_hash_);
  }
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.etag().size() > 0) {
    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  storage_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.storage_class().size() > 0) {
    storage_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.storage_class_);
  }
  kms_key_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.kms_key_name().size() > 0) {
    kms_key_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kms_key_name_);
  }
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.name().size() > 0) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.bucket().size() > 0) {
    bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bucket_);
  }
  if (from.has_time_deleted()) {
    time_deleted_ = new ::google::protobuf::Timestamp(*from.time_deleted_);
  } else {
    time_deleted_ = nullptr;
  }
  if (from.has_time_created()) {
    time_created_ = new ::google::protobuf::Timestamp(*from.time_created_);
  } else {
    time_created_ = nullptr;
  }
  if (from.has_crc32c()) {
    crc32c_ = new ::google::protobuf::UInt32Value(*from.crc32c_);
  } else {
    crc32c_ = nullptr;
  }
  if (from.has_updated()) {
    updated_ = new ::google::protobuf::Timestamp(*from.updated_);
  } else {
    updated_ = nullptr;
  }
  if (from.has_time_storage_class_updated()) {
    time_storage_class_updated_ = new ::google::protobuf::Timestamp(*from.time_storage_class_updated_);
  } else {
    time_storage_class_updated_ = nullptr;
  }
  if (from.has_retention_expiration_time()) {
    retention_expiration_time_ = new ::google::protobuf::Timestamp(*from.retention_expiration_time_);
  } else {
    retention_expiration_time_ = nullptr;
  }
  if (from.has_owner()) {
    owner_ = new ::google::storage::v1::Owner(*from.owner_);
  } else {
    owner_ = nullptr;
  }
  if (from.has_customer_encryption()) {
    customer_encryption_ = new ::google::storage::v1::Object_CustomerEncryption(*from.customer_encryption_);
  } else {
    customer_encryption_ = nullptr;
  }
  if (from.has_event_based_hold()) {
    event_based_hold_ = new ::google::protobuf::BoolValue(*from.event_based_hold_);
  } else {
    event_based_hold_ = nullptr;
  }
  ::memcpy(&metageneration_, &from.metageneration_,
    static_cast<size_t>(reinterpret_cast<char*>(&generation_) -
    reinterpret_cast<char*>(&metageneration_)) + sizeof(generation_));
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Object)
}

void Object::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Object_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  content_encoding_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_disposition_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cache_control_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_language_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_type_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  md5_hash_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kms_key_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&time_deleted_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&generation_) -
      reinterpret_cast<char*>(&time_deleted_)) + sizeof(generation_));
}

Object::~Object() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Object)
  SharedDtor();
}

void Object::SharedDtor() {
  content_encoding_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_disposition_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cache_control_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_language_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_type_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  md5_hash_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kms_key_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete time_deleted_;
  if (this != internal_default_instance()) delete time_created_;
  if (this != internal_default_instance()) delete crc32c_;
  if (this != internal_default_instance()) delete updated_;
  if (this != internal_default_instance()) delete time_storage_class_updated_;
  if (this != internal_default_instance()) delete retention_expiration_time_;
  if (this != internal_default_instance()) delete owner_;
  if (this != internal_default_instance()) delete customer_encryption_;
  if (this != internal_default_instance()) delete event_based_hold_;
}

void Object::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Object& Object::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Object_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Object::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Object)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  acl_.Clear();
  metadata_.Clear();
  content_encoding_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_disposition_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cache_control_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_language_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  content_type_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  md5_hash_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  storage_class_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  kms_key_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && time_deleted_ != nullptr) {
    delete time_deleted_;
  }
  time_deleted_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && time_created_ != nullptr) {
    delete time_created_;
  }
  time_created_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && crc32c_ != nullptr) {
    delete crc32c_;
  }
  crc32c_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && updated_ != nullptr) {
    delete updated_;
  }
  updated_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && time_storage_class_updated_ != nullptr) {
    delete time_storage_class_updated_;
  }
  time_storage_class_updated_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && retention_expiration_time_ != nullptr) {
    delete retention_expiration_time_;
  }
  retention_expiration_time_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && owner_ != nullptr) {
    delete owner_;
  }
  owner_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && customer_encryption_ != nullptr) {
    delete customer_encryption_;
  }
  customer_encryption_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && event_based_hold_ != nullptr) {
    delete event_based_hold_;
  }
  event_based_hold_ = nullptr;
  ::memset(&metageneration_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&generation_) -
      reinterpret_cast<char*>(&metageneration_)) + sizeof(generation_));
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Object::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Object*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string content_encoding = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.content_encoding");
        object = msg->mutable_content_encoding();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string content_disposition = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.content_disposition");
        object = msg->mutable_content_disposition();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string cache_control = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.cache_control");
        object = msg->mutable_cache_control();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // repeated .google.storage.v1.ObjectAccessControl acl = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::ObjectAccessControl::_InternalParse;
          object = msg->add_acl();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 34 && (ptr += 1));
        break;
      }
      // string content_language = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.content_language");
        object = msg->mutable_content_language();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // int64 metageneration = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 48) goto handle_unusual;
        msg->set_metageneration(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // .google.protobuf.Timestamp time_deleted = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_time_deleted();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string content_type = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.content_type");
        object = msg->mutable_content_type();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // int64 size = 9;
      case 9: {
        if (static_cast<::google::protobuf::uint8>(tag) != 72) goto handle_unusual;
        msg->set_size(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // .google.protobuf.Timestamp time_created = 10;
      case 10: {
        if (static_cast<::google::protobuf::uint8>(tag) != 82) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_time_created();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.protobuf.UInt32Value crc32c = 11;
      case 11: {
        if (static_cast<::google::protobuf::uint8>(tag) != 90) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::UInt32Value::_InternalParse;
        object = msg->mutable_crc32c();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // int32 component_count = 12;
      case 12: {
        if (static_cast<::google::protobuf::uint8>(tag) != 96) goto handle_unusual;
        msg->set_component_count(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // string md5_hash = 13;
      case 13: {
        if (static_cast<::google::protobuf::uint8>(tag) != 106) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.md5_hash");
        object = msg->mutable_md5_hash();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string etag = 14;
      case 14: {
        if (static_cast<::google::protobuf::uint8>(tag) != 114) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.etag");
        object = msg->mutable_etag();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Timestamp updated = 15;
      case 15: {
        if (static_cast<::google::protobuf::uint8>(tag) != 122) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_updated();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string storage_class = 16;
      case 16: {
        if (static_cast<::google::protobuf::uint8>(tag) != 130) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.storage_class");
        object = msg->mutable_storage_class();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string kms_key_name = 17;
      case 17: {
        if (static_cast<::google::protobuf::uint8>(tag) != 138) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.kms_key_name");
        object = msg->mutable_kms_key_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Timestamp time_storage_class_updated = 18;
      case 18: {
        if (static_cast<::google::protobuf::uint8>(tag) != 146) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_time_storage_class_updated();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // bool temporary_hold = 19;
      case 19: {
        if (static_cast<::google::protobuf::uint8>(tag) != 152) goto handle_unusual;
        msg->set_temporary_hold(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // .google.protobuf.Timestamp retention_expiration_time = 20;
      case 20: {
        if (static_cast<::google::protobuf::uint8>(tag) != 162) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Timestamp::_InternalParse;
        object = msg->mutable_retention_expiration_time();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // map<string, string> metadata = 21;
      case 21: {
        if (static_cast<::google::protobuf::uint8>(tag) != 170) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
          auto parse_map = ::google::storage::v1::Object_MetadataEntry_DoNotUse::_ParseMap;
          ctx->extra_parse_data().payload.clear();
          ctx->extra_parse_data().parse_map = parse_map;
          object = &msg->metadata_;
          if (size > end - ptr) goto len_delim_till_end;
          auto newend = ptr + size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
          ptr = newend;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 65535) == 426 && (ptr += 2));
        break;
      }
      // string name = 23;
      case 23: {
        if (static_cast<::google::protobuf::uint8>(tag) != 186) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.name");
        object = msg->mutable_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string id = 24;
      case 24: {
        if (static_cast<::google::protobuf::uint8>(tag) != 194) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string bucket = 25;
      case 25: {
        if (static_cast<::google::protobuf::uint8>(tag) != 202) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Object.bucket");
        object = msg->mutable_bucket();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // int64 generation = 26;
      case 26: {
        if (static_cast<::google::protobuf::uint8>(tag) != 208) goto handle_unusual;
        msg->set_generation(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // .google.storage.v1.Owner owner = 27;
      case 27: {
        if (static_cast<::google::protobuf::uint8>(tag) != 218) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Owner::_InternalParse;
        object = msg->mutable_owner();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.storage.v1.Object.CustomerEncryption customer_encryption = 28;
      case 28: {
        if (static_cast<::google::protobuf::uint8>(tag) != 226) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::Object_CustomerEncryption::_InternalParse;
        object = msg->mutable_customer_encryption();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.protobuf.BoolValue event_based_hold = 29;
      case 29: {
        if (static_cast<::google::protobuf::uint8>(tag) != 234) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::BoolValue::_InternalParse;
        object = msg->mutable_event_based_hold();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Object::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Object)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string content_encoding = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_content_encoding()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->content_encoding().data(), static_cast<int>(this->content_encoding().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.content_encoding"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string content_disposition = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_content_disposition()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->content_disposition().data(), static_cast<int>(this->content_disposition().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.content_disposition"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string cache_control = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cache_control()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->cache_control().data(), static_cast<int>(this->cache_control().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.cache_control"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .google.storage.v1.ObjectAccessControl acl = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_acl()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string content_language = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_content_language()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->content_language().data(), static_cast<int>(this->content_language().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.content_language"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 metageneration = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (48 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &metageneration_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp time_deleted = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_time_deleted()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string content_type = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_content_type()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->content_type().data(), static_cast<int>(this->content_type().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.content_type"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 size = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (72 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &size_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp time_created = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (82 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_time_created()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.UInt32Value crc32c = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (90 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_crc32c()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 component_count = 12;
      case 12: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (96 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &component_count_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string md5_hash = 13;
      case 13: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (106 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_md5_hash()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->md5_hash().data(), static_cast<int>(this->md5_hash().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.md5_hash"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string etag = 14;
      case 14: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (114 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_etag()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->etag().data(), static_cast<int>(this->etag().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.etag"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp updated = 15;
      case 15: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (122 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_updated()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string storage_class = 16;
      case 16: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (130 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_storage_class()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->storage_class().data(), static_cast<int>(this->storage_class().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.storage_class"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string kms_key_name = 17;
      case 17: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (138 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_kms_key_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->kms_key_name().data(), static_cast<int>(this->kms_key_name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.kms_key_name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp time_storage_class_updated = 18;
      case 18: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (146 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_time_storage_class_updated()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bool temporary_hold = 19;
      case 19: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (152 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
                 input, &temporary_hold_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Timestamp retention_expiration_time = 20;
      case 20: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (162 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_retention_expiration_time()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, string> metadata = 21;
      case 21: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (170 & 0xFF)) {
          Object_MetadataEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              Object_MetadataEntry_DoNotUse,
              ::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(&metadata_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.MetadataEntry.key"));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.MetadataEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string name = 23;
      case 23: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (186 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->name().data(), static_cast<int>(this->name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 24;
      case 24: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (194 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string bucket = 25;
      case 25: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (202 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_bucket()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->bucket().data(), static_cast<int>(this->bucket().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Object.bucket"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 generation = 26;
      case 26: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (208 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &generation_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Owner owner = 27;
      case 27: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (218 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_owner()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.Object.CustomerEncryption customer_encryption = 28;
      case 28: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (226 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_customer_encryption()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.BoolValue event_based_hold = 29;
      case 29: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (234 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_event_based_hold()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Object)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Object)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Object::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Object)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string content_encoding = 1;
  if (this->content_encoding().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_encoding().data(), static_cast<int>(this->content_encoding().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_encoding");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->content_encoding(), output);
  }

  // string content_disposition = 2;
  if (this->content_disposition().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_disposition().data(), static_cast<int>(this->content_disposition().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_disposition");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->content_disposition(), output);
  }

  // string cache_control = 3;
  if (this->cache_control().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cache_control().data(), static_cast<int>(this->cache_control().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.cache_control");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->cache_control(), output);
  }

  // repeated .google.storage.v1.ObjectAccessControl acl = 4;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->acl_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4,
      this->acl(static_cast<int>(i)),
      output);
  }

  // string content_language = 5;
  if (this->content_language().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_language().data(), static_cast<int>(this->content_language().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_language");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->content_language(), output);
  }

  // int64 metageneration = 6;
  if (this->metageneration() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(6, this->metageneration(), output);
  }

  // .google.protobuf.Timestamp time_deleted = 7;
  if (this->has_time_deleted()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, HasBitSetters::time_deleted(this), output);
  }

  // string content_type = 8;
  if (this->content_type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_type().data(), static_cast<int>(this->content_type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_type");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->content_type(), output);
  }

  // int64 size = 9;
  if (this->size() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(9, this->size(), output);
  }

  // .google.protobuf.Timestamp time_created = 10;
  if (this->has_time_created()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      10, HasBitSetters::time_created(this), output);
  }

  // .google.protobuf.UInt32Value crc32c = 11;
  if (this->has_crc32c()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, HasBitSetters::crc32c(this), output);
  }

  // int32 component_count = 12;
  if (this->component_count() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(12, this->component_count(), output);
  }

  // string md5_hash = 13;
  if (this->md5_hash().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->md5_hash().data(), static_cast<int>(this->md5_hash().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.md5_hash");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      13, this->md5_hash(), output);
  }

  // string etag = 14;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.etag");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      14, this->etag(), output);
  }

  // .google.protobuf.Timestamp updated = 15;
  if (this->has_updated()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      15, HasBitSetters::updated(this), output);
  }

  // string storage_class = 16;
  if (this->storage_class().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->storage_class().data(), static_cast<int>(this->storage_class().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.storage_class");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      16, this->storage_class(), output);
  }

  // string kms_key_name = 17;
  if (this->kms_key_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kms_key_name().data(), static_cast<int>(this->kms_key_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.kms_key_name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      17, this->kms_key_name(), output);
  }

  // .google.protobuf.Timestamp time_storage_class_updated = 18;
  if (this->has_time_storage_class_updated()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      18, HasBitSetters::time_storage_class_updated(this), output);
  }

  // bool temporary_hold = 19;
  if (this->temporary_hold() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteBool(19, this->temporary_hold(), output);
  }

  // .google.protobuf.Timestamp retention_expiration_time = 20;
  if (this->has_retention_expiration_time()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      20, HasBitSetters::retention_expiration_time(this), output);
  }

  // map<string, string> metadata = 21;
  if (!this->metadata().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Object.MetadataEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Object.MetadataEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->metadata().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->metadata().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->metadata().begin();
          it != this->metadata().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Object_MetadataEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(metadata_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(21, *entry, output);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Object_MetadataEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->metadata().begin();
          it != this->metadata().end(); ++it) {
        entry.reset(metadata_.NewEntryWrapper(it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(21, *entry, output);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // string name = 23;
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      23, this->name(), output);
  }

  // string id = 24;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      24, this->id(), output);
  }

  // string bucket = 25;
  if (this->bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->bucket().data(), static_cast<int>(this->bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.bucket");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      25, this->bucket(), output);
  }

  // int64 generation = 26;
  if (this->generation() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(26, this->generation(), output);
  }

  // .google.storage.v1.Owner owner = 27;
  if (this->has_owner()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      27, HasBitSetters::owner(this), output);
  }

  // .google.storage.v1.Object.CustomerEncryption customer_encryption = 28;
  if (this->has_customer_encryption()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      28, HasBitSetters::customer_encryption(this), output);
  }

  // .google.protobuf.BoolValue event_based_hold = 29;
  if (this->has_event_based_hold()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      29, HasBitSetters::event_based_hold(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Object)
}

::google::protobuf::uint8* Object::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Object)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string content_encoding = 1;
  if (this->content_encoding().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_encoding().data(), static_cast<int>(this->content_encoding().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_encoding");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->content_encoding(), target);
  }

  // string content_disposition = 2;
  if (this->content_disposition().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_disposition().data(), static_cast<int>(this->content_disposition().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_disposition");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->content_disposition(), target);
  }

  // string cache_control = 3;
  if (this->cache_control().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cache_control().data(), static_cast<int>(this->cache_control().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.cache_control");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->cache_control(), target);
  }

  // repeated .google.storage.v1.ObjectAccessControl acl = 4;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->acl_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->acl(static_cast<int>(i)), target);
  }

  // string content_language = 5;
  if (this->content_language().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_language().data(), static_cast<int>(this->content_language().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_language");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->content_language(), target);
  }

  // int64 metageneration = 6;
  if (this->metageneration() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(6, this->metageneration(), target);
  }

  // .google.protobuf.Timestamp time_deleted = 7;
  if (this->has_time_deleted()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, HasBitSetters::time_deleted(this), target);
  }

  // string content_type = 8;
  if (this->content_type().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content_type().data(), static_cast<int>(this->content_type().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.content_type");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->content_type(), target);
  }

  // int64 size = 9;
  if (this->size() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(9, this->size(), target);
  }

  // .google.protobuf.Timestamp time_created = 10;
  if (this->has_time_created()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        10, HasBitSetters::time_created(this), target);
  }

  // .google.protobuf.UInt32Value crc32c = 11;
  if (this->has_crc32c()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        11, HasBitSetters::crc32c(this), target);
  }

  // int32 component_count = 12;
  if (this->component_count() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(12, this->component_count(), target);
  }

  // string md5_hash = 13;
  if (this->md5_hash().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->md5_hash().data(), static_cast<int>(this->md5_hash().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.md5_hash");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        13, this->md5_hash(), target);
  }

  // string etag = 14;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.etag");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        14, this->etag(), target);
  }

  // .google.protobuf.Timestamp updated = 15;
  if (this->has_updated()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        15, HasBitSetters::updated(this), target);
  }

  // string storage_class = 16;
  if (this->storage_class().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->storage_class().data(), static_cast<int>(this->storage_class().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.storage_class");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        16, this->storage_class(), target);
  }

  // string kms_key_name = 17;
  if (this->kms_key_name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->kms_key_name().data(), static_cast<int>(this->kms_key_name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.kms_key_name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        17, this->kms_key_name(), target);
  }

  // .google.protobuf.Timestamp time_storage_class_updated = 18;
  if (this->has_time_storage_class_updated()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        18, HasBitSetters::time_storage_class_updated(this), target);
  }

  // bool temporary_hold = 19;
  if (this->temporary_hold() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(19, this->temporary_hold(), target);
  }

  // .google.protobuf.Timestamp retention_expiration_time = 20;
  if (this->has_retention_expiration_time()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        20, HasBitSetters::retention_expiration_time(this), target);
  }

  // map<string, string> metadata = 21;
  if (!this->metadata().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(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Object.MetadataEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.storage.v1.Object.MetadataEntry.value");
      }
    };

    if (false &&
        this->metadata().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->metadata().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->metadata().begin();
          it != this->metadata().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<Object_MetadataEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(metadata_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(21, *entry, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Object_MetadataEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->metadata().begin();
          it != this->metadata().end(); ++it) {
        entry.reset(metadata_.NewEntryWrapper(it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(21, *entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  // string name = 23;
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        23, this->name(), target);
  }

  // string id = 24;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        24, this->id(), target);
  }

  // string bucket = 25;
  if (this->bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->bucket().data(), static_cast<int>(this->bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Object.bucket");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        25, this->bucket(), target);
  }

  // int64 generation = 26;
  if (this->generation() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(26, this->generation(), target);
  }

  // .google.storage.v1.Owner owner = 27;
  if (this->has_owner()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        27, HasBitSetters::owner(this), target);
  }

  // .google.storage.v1.Object.CustomerEncryption customer_encryption = 28;
  if (this->has_customer_encryption()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        28, HasBitSetters::customer_encryption(this), target);
  }

  // .google.protobuf.BoolValue event_based_hold = 29;
  if (this->has_event_based_hold()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        29, HasBitSetters::event_based_hold(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Object)
  return target;
}

size_t Object::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Object)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.ObjectAccessControl acl = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->acl_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->acl(static_cast<int>(i)));
    }
  }

  // map<string, string> metadata = 21;
  total_size += 2 *
      ::google::protobuf::internal::FromIntSize(this->metadata_size());
  {
    ::std::unique_ptr<Object_MetadataEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
        it = this->metadata().begin();
        it != this->metadata().end(); ++it) {
      entry.reset(metadata_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // string content_encoding = 1;
  if (this->content_encoding().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->content_encoding());
  }

  // string content_disposition = 2;
  if (this->content_disposition().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->content_disposition());
  }

  // string cache_control = 3;
  if (this->cache_control().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->cache_control());
  }

  // string content_language = 5;
  if (this->content_language().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->content_language());
  }

  // string content_type = 8;
  if (this->content_type().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->content_type());
  }

  // string md5_hash = 13;
  if (this->md5_hash().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->md5_hash());
  }

  // string etag = 14;
  if (this->etag().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->etag());
  }

  // string storage_class = 16;
  if (this->storage_class().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->storage_class());
  }

  // string kms_key_name = 17;
  if (this->kms_key_name().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->kms_key_name());
  }

  // string name = 23;
  if (this->name().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  // string id = 24;
  if (this->id().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string bucket = 25;
  if (this->bucket().size() > 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->bucket());
  }

  // .google.protobuf.Timestamp time_deleted = 7;
  if (this->has_time_deleted()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *time_deleted_);
  }

  // .google.protobuf.Timestamp time_created = 10;
  if (this->has_time_created()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *time_created_);
  }

  // .google.protobuf.UInt32Value crc32c = 11;
  if (this->has_crc32c()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *crc32c_);
  }

  // .google.protobuf.Timestamp updated = 15;
  if (this->has_updated()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *updated_);
  }

  // .google.protobuf.Timestamp time_storage_class_updated = 18;
  if (this->has_time_storage_class_updated()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *time_storage_class_updated_);
  }

  // .google.protobuf.Timestamp retention_expiration_time = 20;
  if (this->has_retention_expiration_time()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *retention_expiration_time_);
  }

  // .google.storage.v1.Owner owner = 27;
  if (this->has_owner()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *owner_);
  }

  // .google.storage.v1.Object.CustomerEncryption customer_encryption = 28;
  if (this->has_customer_encryption()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *customer_encryption_);
  }

  // .google.protobuf.BoolValue event_based_hold = 29;
  if (this->has_event_based_hold()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *event_based_hold_);
  }

  // int64 metageneration = 6;
  if (this->metageneration() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->metageneration());
  }

  // int64 size = 9;
  if (this->size() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->size());
  }

  // int32 component_count = 12;
  if (this->component_count() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->component_count());
  }

  // bool temporary_hold = 19;
  if (this->temporary_hold() != 0) {
    total_size += 2 + 1;
  }

  // int64 generation = 26;
  if (this->generation() != 0) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->generation());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Object::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Object)
  GOOGLE_DCHECK_NE(&from, this);
  const Object* source =
      ::google::protobuf::DynamicCastToGenerated<Object>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Object)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Object)
    MergeFrom(*source);
  }
}

void Object::MergeFrom(const Object& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Object)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  acl_.MergeFrom(from.acl_);
  metadata_.MergeFrom(from.metadata_);
  if (from.content_encoding().size() > 0) {

    content_encoding_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_encoding_);
  }
  if (from.content_disposition().size() > 0) {

    content_disposition_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_disposition_);
  }
  if (from.cache_control().size() > 0) {

    cache_control_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cache_control_);
  }
  if (from.content_language().size() > 0) {

    content_language_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_language_);
  }
  if (from.content_type().size() > 0) {

    content_type_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_type_);
  }
  if (from.md5_hash().size() > 0) {

    md5_hash_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.md5_hash_);
  }
  if (from.etag().size() > 0) {

    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.storage_class().size() > 0) {

    storage_class_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.storage_class_);
  }
  if (from.kms_key_name().size() > 0) {

    kms_key_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.kms_key_name_);
  }
  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.bucket().size() > 0) {

    bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bucket_);
  }
  if (from.has_time_deleted()) {
    mutable_time_deleted()->::google::protobuf::Timestamp::MergeFrom(from.time_deleted());
  }
  if (from.has_time_created()) {
    mutable_time_created()->::google::protobuf::Timestamp::MergeFrom(from.time_created());
  }
  if (from.has_crc32c()) {
    mutable_crc32c()->::google::protobuf::UInt32Value::MergeFrom(from.crc32c());
  }
  if (from.has_updated()) {
    mutable_updated()->::google::protobuf::Timestamp::MergeFrom(from.updated());
  }
  if (from.has_time_storage_class_updated()) {
    mutable_time_storage_class_updated()->::google::protobuf::Timestamp::MergeFrom(from.time_storage_class_updated());
  }
  if (from.has_retention_expiration_time()) {
    mutable_retention_expiration_time()->::google::protobuf::Timestamp::MergeFrom(from.retention_expiration_time());
  }
  if (from.has_owner()) {
    mutable_owner()->::google::storage::v1::Owner::MergeFrom(from.owner());
  }
  if (from.has_customer_encryption()) {
    mutable_customer_encryption()->::google::storage::v1::Object_CustomerEncryption::MergeFrom(from.customer_encryption());
  }
  if (from.has_event_based_hold()) {
    mutable_event_based_hold()->::google::protobuf::BoolValue::MergeFrom(from.event_based_hold());
  }
  if (from.metageneration() != 0) {
    set_metageneration(from.metageneration());
  }
  if (from.size() != 0) {
    set_size(from.size());
  }
  if (from.component_count() != 0) {
    set_component_count(from.component_count());
  }
  if (from.temporary_hold() != 0) {
    set_temporary_hold(from.temporary_hold());
  }
  if (from.generation() != 0) {
    set_generation(from.generation());
  }
}

void Object::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Object)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Object::CopyFrom(const Object& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Object)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Object::IsInitialized() const {
  return true;
}

void Object::Swap(Object* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Object::InternalSwap(Object* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&acl_)->InternalSwap(CastToBase(&other->acl_));
  metadata_.Swap(&other->metadata_);
  content_encoding_.Swap(&other->content_encoding_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  content_disposition_.Swap(&other->content_disposition_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  cache_control_.Swap(&other->cache_control_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  content_language_.Swap(&other->content_language_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  content_type_.Swap(&other->content_type_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  md5_hash_.Swap(&other->md5_hash_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  etag_.Swap(&other->etag_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  storage_class_.Swap(&other->storage_class_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  kms_key_name_.Swap(&other->kms_key_name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  name_.Swap(&other->name_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  bucket_.Swap(&other->bucket_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(time_deleted_, other->time_deleted_);
  swap(time_created_, other->time_created_);
  swap(crc32c_, other->crc32c_);
  swap(updated_, other->updated_);
  swap(time_storage_class_updated_, other->time_storage_class_updated_);
  swap(retention_expiration_time_, other->retention_expiration_time_);
  swap(owner_, other->owner_);
  swap(customer_encryption_, other->customer_encryption_);
  swap(event_based_hold_, other->event_based_hold_);
  swap(metageneration_, other->metageneration_);
  swap(size_, other->size_);
  swap(component_count_, other->component_count_);
  swap(temporary_hold_, other->temporary_hold_);
  swap(generation_, other->generation_);
}

::google::protobuf::Metadata Object::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ObjectAccessControl::InitAsDefaultInstance() {
  ::google::storage::v1::_ObjectAccessControl_default_instance_._instance.get_mutable()->project_team_ = const_cast< ::google::storage::v1::ProjectTeam*>(
      ::google::storage::v1::ProjectTeam::internal_default_instance());
}
class ObjectAccessControl::HasBitSetters {
 public:
  static const ::google::storage::v1::ProjectTeam& project_team(const ObjectAccessControl* msg);
};

const ::google::storage::v1::ProjectTeam&
ObjectAccessControl::HasBitSetters::project_team(const ObjectAccessControl* msg) {
  return *msg->project_team_;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ObjectAccessControl::kRoleFieldNumber;
const int ObjectAccessControl::kEtagFieldNumber;
const int ObjectAccessControl::kIdFieldNumber;
const int ObjectAccessControl::kBucketFieldNumber;
const int ObjectAccessControl::kObjectFieldNumber;
const int ObjectAccessControl::kGenerationFieldNumber;
const int ObjectAccessControl::kEntityFieldNumber;
const int ObjectAccessControl::kEntityIdFieldNumber;
const int ObjectAccessControl::kEmailFieldNumber;
const int ObjectAccessControl::kDomainFieldNumber;
const int ObjectAccessControl::kProjectTeamFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ObjectAccessControl::ObjectAccessControl()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ObjectAccessControl)
}
ObjectAccessControl::ObjectAccessControl(const ObjectAccessControl& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  role_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.role().size() > 0) {
    role_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.role_);
  }
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.etag().size() > 0) {
    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.bucket().size() > 0) {
    bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bucket_);
  }
  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.object().size() > 0) {
    object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
  }
  entity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.entity().size() > 0) {
    entity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_);
  }
  entity_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.entity_id().size() > 0) {
    entity_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_id_);
  }
  email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.email().size() > 0) {
    email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.email_);
  }
  domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.domain().size() > 0) {
    domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_);
  }
  if (from.has_project_team()) {
    project_team_ = new ::google::storage::v1::ProjectTeam(*from.project_team_);
  } else {
    project_team_ = nullptr;
  }
  generation_ = from.generation_;
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ObjectAccessControl)
}

void ObjectAccessControl::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  role_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  email_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  domain_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&project_team_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&generation_) -
      reinterpret_cast<char*>(&project_team_)) + sizeof(generation_));
}

ObjectAccessControl::~ObjectAccessControl() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ObjectAccessControl)
  SharedDtor();
}

void ObjectAccessControl::SharedDtor() {
  role_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  object_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  email_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  domain_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete project_team_;
}

void ObjectAccessControl::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ObjectAccessControl& ObjectAccessControl::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ObjectAccessControl_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ObjectAccessControl::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ObjectAccessControl)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  role_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  etag_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  bucket_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  email_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  domain_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && project_team_ != nullptr) {
    delete project_team_;
  }
  project_team_ = nullptr;
  generation_ = PROTOBUF_LONGLONG(0);
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ObjectAccessControl::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ObjectAccessControl*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string role = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.role");
        object = msg->mutable_role();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string etag = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.etag");
        object = msg->mutable_etag();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string id = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string bucket = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.bucket");
        object = msg->mutable_bucket();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string object = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.object");
        object = msg->mutable_object();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // int64 generation = 6;
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 48) goto handle_unusual;
        msg->set_generation(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // string entity = 7;
      case 7: {
        if (static_cast<::google::protobuf::uint8>(tag) != 58) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.entity");
        object = msg->mutable_entity();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string entity_id = 8;
      case 8: {
        if (static_cast<::google::protobuf::uint8>(tag) != 66) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.entity_id");
        object = msg->mutable_entity_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string email = 9;
      case 9: {
        if (static_cast<::google::protobuf::uint8>(tag) != 74) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.email");
        object = msg->mutable_email();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string domain = 10;
      case 10: {
        if (static_cast<::google::protobuf::uint8>(tag) != 82) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ObjectAccessControl.domain");
        object = msg->mutable_domain();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.storage.v1.ProjectTeam project_team = 11;
      case 11: {
        if (static_cast<::google::protobuf::uint8>(tag) != 90) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::storage::v1::ProjectTeam::_InternalParse;
        object = msg->mutable_project_team();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ObjectAccessControl::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ObjectAccessControl)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string role = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_role()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->role().data(), static_cast<int>(this->role().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.role"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string etag = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_etag()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->etag().data(), static_cast<int>(this->etag().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.etag"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string id = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string bucket = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_bucket()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->bucket().data(), static_cast<int>(this->bucket().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.bucket"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string object = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_object()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->object().data(), static_cast<int>(this->object().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.object"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 generation = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (48 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &generation_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string entity = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (58 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entity()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->entity().data(), static_cast<int>(this->entity().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.entity"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string entity_id = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (66 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entity_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->entity_id().data(), static_cast<int>(this->entity_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.entity_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string email = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (74 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_email()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->email().data(), static_cast<int>(this->email().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.email"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string domain = 10;
      case 10: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (82 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_domain()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->domain().data(), static_cast<int>(this->domain().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ObjectAccessControl.domain"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.storage.v1.ProjectTeam project_team = 11;
      case 11: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (90 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_project_team()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ObjectAccessControl)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ObjectAccessControl)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ObjectAccessControl::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ObjectAccessControl)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string role = 1;
  if (this->role().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->role().data(), static_cast<int>(this->role().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.role");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->role(), output);
  }

  // string etag = 2;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.etag");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->etag(), output);
  }

  // string id = 3;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->id(), output);
  }

  // string bucket = 4;
  if (this->bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->bucket().data(), static_cast<int>(this->bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.bucket");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->bucket(), output);
  }

  // string object = 5;
  if (this->object().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->object().data(), static_cast<int>(this->object().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.object");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->object(), output);
  }

  // int64 generation = 6;
  if (this->generation() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(6, this->generation(), output);
  }

  // string entity = 7;
  if (this->entity().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity().data(), static_cast<int>(this->entity().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.entity");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      7, this->entity(), output);
  }

  // string entity_id = 8;
  if (this->entity_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity_id().data(), static_cast<int>(this->entity_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.entity_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      8, this->entity_id(), output);
  }

  // string email = 9;
  if (this->email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->email().data(), static_cast<int>(this->email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.email");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      9, this->email(), output);
  }

  // string domain = 10;
  if (this->domain().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->domain().data(), static_cast<int>(this->domain().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.domain");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      10, this->domain(), output);
  }

  // .google.storage.v1.ProjectTeam project_team = 11;
  if (this->has_project_team()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      11, HasBitSetters::project_team(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ObjectAccessControl)
}

::google::protobuf::uint8* ObjectAccessControl::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ObjectAccessControl)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string role = 1;
  if (this->role().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->role().data(), static_cast<int>(this->role().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.role");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->role(), target);
  }

  // string etag = 2;
  if (this->etag().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->etag().data(), static_cast<int>(this->etag().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.etag");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->etag(), target);
  }

  // string id = 3;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->id(), target);
  }

  // string bucket = 4;
  if (this->bucket().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->bucket().data(), static_cast<int>(this->bucket().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.bucket");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->bucket(), target);
  }

  // string object = 5;
  if (this->object().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->object().data(), static_cast<int>(this->object().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.object");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->object(), target);
  }

  // int64 generation = 6;
  if (this->generation() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(6, this->generation(), target);
  }

  // string entity = 7;
  if (this->entity().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity().data(), static_cast<int>(this->entity().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.entity");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        7, this->entity(), target);
  }

  // string entity_id = 8;
  if (this->entity_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity_id().data(), static_cast<int>(this->entity_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.entity_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        8, this->entity_id(), target);
  }

  // string email = 9;
  if (this->email().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->email().data(), static_cast<int>(this->email().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.email");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        9, this->email(), target);
  }

  // string domain = 10;
  if (this->domain().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->domain().data(), static_cast<int>(this->domain().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ObjectAccessControl.domain");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        10, this->domain(), target);
  }

  // .google.storage.v1.ProjectTeam project_team = 11;
  if (this->has_project_team()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        11, HasBitSetters::project_team(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ObjectAccessControl)
  return target;
}

size_t ObjectAccessControl::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ObjectAccessControl)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string role = 1;
  if (this->role().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->role());
  }

  // string etag = 2;
  if (this->etag().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->etag());
  }

  // string id = 3;
  if (this->id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->id());
  }

  // string bucket = 4;
  if (this->bucket().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->bucket());
  }

  // string object = 5;
  if (this->object().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->object());
  }

  // string entity = 7;
  if (this->entity().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->entity());
  }

  // string entity_id = 8;
  if (this->entity_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->entity_id());
  }

  // string email = 9;
  if (this->email().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->email());
  }

  // string domain = 10;
  if (this->domain().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->domain());
  }

  // .google.storage.v1.ProjectTeam project_team = 11;
  if (this->has_project_team()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *project_team_);
  }

  // int64 generation = 6;
  if (this->generation() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->generation());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ObjectAccessControl::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ObjectAccessControl)
  GOOGLE_DCHECK_NE(&from, this);
  const ObjectAccessControl* source =
      ::google::protobuf::DynamicCastToGenerated<ObjectAccessControl>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ObjectAccessControl)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ObjectAccessControl)
    MergeFrom(*source);
  }
}

void ObjectAccessControl::MergeFrom(const ObjectAccessControl& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ObjectAccessControl)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.role().size() > 0) {

    role_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.role_);
  }
  if (from.etag().size() > 0) {

    etag_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.etag_);
  }
  if (from.id().size() > 0) {

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.bucket().size() > 0) {

    bucket_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.bucket_);
  }
  if (from.object().size() > 0) {

    object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
  }
  if (from.entity().size() > 0) {

    entity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_);
  }
  if (from.entity_id().size() > 0) {

    entity_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_id_);
  }
  if (from.email().size() > 0) {

    email_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.email_);
  }
  if (from.domain().size() > 0) {

    domain_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.domain_);
  }
  if (from.has_project_team()) {
    mutable_project_team()->::google::storage::v1::ProjectTeam::MergeFrom(from.project_team());
  }
  if (from.generation() != 0) {
    set_generation(from.generation());
  }
}

void ObjectAccessControl::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ObjectAccessControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ObjectAccessControl::CopyFrom(const ObjectAccessControl& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ObjectAccessControl)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ObjectAccessControl::IsInitialized() const {
  return true;
}

void ObjectAccessControl::Swap(ObjectAccessControl* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ObjectAccessControl::InternalSwap(ObjectAccessControl* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  role_.Swap(&other->role_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  etag_.Swap(&other->etag_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  bucket_.Swap(&other->bucket_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  object_.Swap(&other->object_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  entity_.Swap(&other->entity_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  entity_id_.Swap(&other->entity_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  email_.Swap(&other->email_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  domain_.Swap(&other->domain_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(project_team_, other->project_team_);
  swap(generation_, other->generation_);
}

::google::protobuf::Metadata ObjectAccessControl::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListObjectAccessControlsResponse::InitAsDefaultInstance() {
}
class ListObjectAccessControlsResponse::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListObjectAccessControlsResponse::kItemsFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListObjectAccessControlsResponse::ListObjectAccessControlsResponse()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListObjectAccessControlsResponse)
}
ListObjectAccessControlsResponse::ListObjectAccessControlsResponse(const ListObjectAccessControlsResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      items_(from.items_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListObjectAccessControlsResponse)
}

void ListObjectAccessControlsResponse::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListObjectAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
}

ListObjectAccessControlsResponse::~ListObjectAccessControlsResponse() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListObjectAccessControlsResponse)
  SharedDtor();
}

void ListObjectAccessControlsResponse::SharedDtor() {
}

void ListObjectAccessControlsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListObjectAccessControlsResponse& ListObjectAccessControlsResponse::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListObjectAccessControlsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListObjectAccessControlsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListObjectAccessControlsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  items_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListObjectAccessControlsResponse::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListObjectAccessControlsResponse*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated .google.storage.v1.ObjectAccessControl items = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::ObjectAccessControl::_InternalParse;
          object = msg->add_items();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListObjectAccessControlsResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListObjectAccessControlsResponse)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated .google.storage.v1.ObjectAccessControl items = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_items()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListObjectAccessControlsResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListObjectAccessControlsResponse)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListObjectAccessControlsResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListObjectAccessControlsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.ObjectAccessControl items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1,
      this->items(static_cast<int>(i)),
      output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListObjectAccessControlsResponse)
}

::google::protobuf::uint8* ListObjectAccessControlsResponse::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListObjectAccessControlsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .google.storage.v1.ObjectAccessControl items = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->items(static_cast<int>(i)), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListObjectAccessControlsResponse)
  return target;
}

size_t ListObjectAccessControlsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListObjectAccessControlsResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .google.storage.v1.ObjectAccessControl items = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->items_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->items(static_cast<int>(i)));
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListObjectAccessControlsResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListObjectAccessControlsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ListObjectAccessControlsResponse* source =
      ::google::protobuf::DynamicCastToGenerated<ListObjectAccessControlsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListObjectAccessControlsResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListObjectAccessControlsResponse)
    MergeFrom(*source);
  }
}

void ListObjectAccessControlsResponse::MergeFrom(const ListObjectAccessControlsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListObjectAccessControlsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  items_.MergeFrom(from.items_);
}

void ListObjectAccessControlsResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListObjectAccessControlsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListObjectAccessControlsResponse::CopyFrom(const ListObjectAccessControlsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListObjectAccessControlsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListObjectAccessControlsResponse::IsInitialized() const {
  return true;
}

void ListObjectAccessControlsResponse::Swap(ListObjectAccessControlsResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListObjectAccessControlsResponse::InternalSwap(ListObjectAccessControlsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  CastToBase(&items_)->InternalSwap(CastToBase(&other->items_));
}

::google::protobuf::Metadata ListObjectAccessControlsResponse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ListObjectsResponse::InitAsDefaultInstance() {
}
class ListObjectsResponse::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListObjectsResponse::kPrefixesFieldNumber;
const int ListObjectsResponse::kItemsFieldNumber;
const int ListObjectsResponse::kNextPageTokenFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListObjectsResponse::ListObjectsResponse()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ListObjectsResponse)
}
ListObjectsResponse::ListObjectsResponse(const ListObjectsResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr),
      prefixes_(from.prefixes_),
      items_(from.items_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  next_page_token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.next_page_token().size() > 0) {
    next_page_token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.next_page_token_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ListObjectsResponse)
}

void ListObjectsResponse::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ListObjectsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  next_page_token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ListObjectsResponse::~ListObjectsResponse() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ListObjectsResponse)
  SharedDtor();
}

void ListObjectsResponse::SharedDtor() {
  next_page_token_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ListObjectsResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ListObjectsResponse& ListObjectsResponse::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ListObjectsResponse_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ListObjectsResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ListObjectsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  prefixes_.Clear();
  items_.Clear();
  next_page_token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ListObjectsResponse::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ListObjectsResponse*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // repeated string prefixes = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          ctx->extra_parse_data().SetFieldName("google.storage.v1.ListObjectsResponse.prefixes");
          object = msg->add_prefixes();
          if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
            parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
            goto string_till_end;
          }
          GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
          ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
          ptr += size;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      // repeated .google.storage.v1.Object items = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::storage::v1::Object::_InternalParse;
          object = msg->add_items();
          if (size > end - ptr) goto len_delim_till_end;
          ptr += size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
              {parser_till_end, object}, ptr - size, ptr));
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 18 && (ptr += 1));
        break;
      }
      // string next_page_token = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ListObjectsResponse.next_page_token");
        object = msg->mutable_next_page_token();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ListObjectsResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ListObjectsResponse)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // repeated string prefixes = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_prefixes()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->prefixes(this->prefixes_size() - 1).data(),
            static_cast<int>(this->prefixes(this->prefixes_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListObjectsResponse.prefixes"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .google.storage.v1.Object items = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_items()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string next_page_token = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_next_page_token()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->next_page_token().data(), static_cast<int>(this->next_page_token().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ListObjectsResponse.next_page_token"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ListObjectsResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ListObjectsResponse)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ListObjectsResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ListObjectsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string prefixes = 1;
  for (int i = 0, n = this->prefixes_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->prefixes(i).data(), static_cast<int>(this->prefixes(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListObjectsResponse.prefixes");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      1, this->prefixes(i), output);
  }

  // repeated .google.storage.v1.Object items = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2,
      this->items(static_cast<int>(i)),
      output);
  }

  // string next_page_token = 3;
  if (this->next_page_token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->next_page_token().data(), static_cast<int>(this->next_page_token().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListObjectsResponse.next_page_token");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->next_page_token(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ListObjectsResponse)
}

::google::protobuf::uint8* ListObjectsResponse::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ListObjectsResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string prefixes = 1;
  for (int i = 0, n = this->prefixes_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->prefixes(i).data(), static_cast<int>(this->prefixes(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListObjectsResponse.prefixes");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(1, this->prefixes(i), target);
  }

  // repeated .google.storage.v1.Object items = 2;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->items_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->items(static_cast<int>(i)), target);
  }

  // string next_page_token = 3;
  if (this->next_page_token().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->next_page_token().data(), static_cast<int>(this->next_page_token().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ListObjectsResponse.next_page_token");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->next_page_token(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ListObjectsResponse)
  return target;
}

size_t ListObjectsResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ListObjectsResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string prefixes = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->prefixes_size());
  for (int i = 0, n = this->prefixes_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->prefixes(i));
  }

  // repeated .google.storage.v1.Object items = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->items_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->items(static_cast<int>(i)));
    }
  }

  // string next_page_token = 3;
  if (this->next_page_token().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->next_page_token());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListObjectsResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ListObjectsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const ListObjectsResponse* source =
      ::google::protobuf::DynamicCastToGenerated<ListObjectsResponse>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ListObjectsResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ListObjectsResponse)
    MergeFrom(*source);
  }
}

void ListObjectsResponse::MergeFrom(const ListObjectsResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ListObjectsResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  prefixes_.MergeFrom(from.prefixes_);
  items_.MergeFrom(from.items_);
  if (from.next_page_token().size() > 0) {

    next_page_token_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.next_page_token_);
  }
}

void ListObjectsResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ListObjectsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListObjectsResponse::CopyFrom(const ListObjectsResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ListObjectsResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ListObjectsResponse::IsInitialized() const {
  return true;
}

void ListObjectsResponse::Swap(ListObjectsResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListObjectsResponse::InternalSwap(ListObjectsResponse* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  prefixes_.InternalSwap(CastToBase(&other->prefixes_));
  CastToBase(&items_)->InternalSwap(CastToBase(&other->items_));
  next_page_token_.Swap(&other->next_page_token_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ListObjectsResponse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ProjectTeam::InitAsDefaultInstance() {
}
class ProjectTeam::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ProjectTeam::kProjectNumberFieldNumber;
const int ProjectTeam::kTeamFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ProjectTeam::ProjectTeam()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ProjectTeam)
}
ProjectTeam::ProjectTeam(const ProjectTeam& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  project_number_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.project_number().size() > 0) {
    project_number_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_number_);
  }
  team_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.team().size() > 0) {
    team_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.team_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ProjectTeam)
}

void ProjectTeam::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  project_number_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  team_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ProjectTeam::~ProjectTeam() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ProjectTeam)
  SharedDtor();
}

void ProjectTeam::SharedDtor() {
  project_number_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  team_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ProjectTeam::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ProjectTeam& ProjectTeam::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ProjectTeam_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ProjectTeam::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ProjectTeam)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  project_number_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  team_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ProjectTeam::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ProjectTeam*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string project_number = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ProjectTeam.project_number");
        object = msg->mutable_project_number();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string team = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ProjectTeam.team");
        object = msg->mutable_team();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ProjectTeam::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ProjectTeam)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string project_number = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_project_number()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->project_number().data(), static_cast<int>(this->project_number().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ProjectTeam.project_number"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string team = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_team()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->team().data(), static_cast<int>(this->team().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ProjectTeam.team"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ProjectTeam)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ProjectTeam)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ProjectTeam::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ProjectTeam)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string project_number = 1;
  if (this->project_number().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->project_number().data(), static_cast<int>(this->project_number().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ProjectTeam.project_number");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->project_number(), output);
  }

  // string team = 2;
  if (this->team().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->team().data(), static_cast<int>(this->team().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ProjectTeam.team");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->team(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ProjectTeam)
}

::google::protobuf::uint8* ProjectTeam::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ProjectTeam)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string project_number = 1;
  if (this->project_number().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->project_number().data(), static_cast<int>(this->project_number().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ProjectTeam.project_number");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->project_number(), target);
  }

  // string team = 2;
  if (this->team().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->team().data(), static_cast<int>(this->team().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ProjectTeam.team");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->team(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ProjectTeam)
  return target;
}

size_t ProjectTeam::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ProjectTeam)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string project_number = 1;
  if (this->project_number().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->project_number());
  }

  // string team = 2;
  if (this->team().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->team());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ProjectTeam::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ProjectTeam)
  GOOGLE_DCHECK_NE(&from, this);
  const ProjectTeam* source =
      ::google::protobuf::DynamicCastToGenerated<ProjectTeam>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ProjectTeam)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ProjectTeam)
    MergeFrom(*source);
  }
}

void ProjectTeam::MergeFrom(const ProjectTeam& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ProjectTeam)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.project_number().size() > 0) {

    project_number_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.project_number_);
  }
  if (from.team().size() > 0) {

    team_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.team_);
  }
}

void ProjectTeam::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ProjectTeam)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ProjectTeam::CopyFrom(const ProjectTeam& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ProjectTeam)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ProjectTeam::IsInitialized() const {
  return true;
}

void ProjectTeam::Swap(ProjectTeam* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ProjectTeam::InternalSwap(ProjectTeam* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  project_number_.Swap(&other->project_number_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  team_.Swap(&other->team_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ProjectTeam::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void ServiceAccount::InitAsDefaultInstance() {
}
class ServiceAccount::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ServiceAccount::kEmailAddressFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ServiceAccount::ServiceAccount()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.ServiceAccount)
}
ServiceAccount::ServiceAccount(const ServiceAccount& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  email_address_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.email_address().size() > 0) {
    email_address_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.email_address_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.ServiceAccount)
}

void ServiceAccount::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_ServiceAccount_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  email_address_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

ServiceAccount::~ServiceAccount() {
  // @@protoc_insertion_point(destructor:google.storage.v1.ServiceAccount)
  SharedDtor();
}

void ServiceAccount::SharedDtor() {
  email_address_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ServiceAccount::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ServiceAccount& ServiceAccount::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_ServiceAccount_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void ServiceAccount::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.ServiceAccount)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  email_address_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* ServiceAccount::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<ServiceAccount*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string email_address = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.ServiceAccount.email_address");
        object = msg->mutable_email_address();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool ServiceAccount::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.ServiceAccount)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string email_address = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_email_address()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->email_address().data(), static_cast<int>(this->email_address().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.ServiceAccount.email_address"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.ServiceAccount)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.ServiceAccount)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void ServiceAccount::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.ServiceAccount)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string email_address = 1;
  if (this->email_address().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->email_address().data(), static_cast<int>(this->email_address().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ServiceAccount.email_address");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->email_address(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.ServiceAccount)
}

::google::protobuf::uint8* ServiceAccount::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.ServiceAccount)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string email_address = 1;
  if (this->email_address().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->email_address().data(), static_cast<int>(this->email_address().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.ServiceAccount.email_address");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->email_address(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.ServiceAccount)
  return target;
}

size_t ServiceAccount::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.ServiceAccount)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string email_address = 1;
  if (this->email_address().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->email_address());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ServiceAccount::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.ServiceAccount)
  GOOGLE_DCHECK_NE(&from, this);
  const ServiceAccount* source =
      ::google::protobuf::DynamicCastToGenerated<ServiceAccount>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.ServiceAccount)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.ServiceAccount)
    MergeFrom(*source);
  }
}

void ServiceAccount::MergeFrom(const ServiceAccount& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.ServiceAccount)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.email_address().size() > 0) {

    email_address_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.email_address_);
  }
}

void ServiceAccount::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.ServiceAccount)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ServiceAccount::CopyFrom(const ServiceAccount& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.ServiceAccount)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ServiceAccount::IsInitialized() const {
  return true;
}

void ServiceAccount::Swap(ServiceAccount* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ServiceAccount::InternalSwap(ServiceAccount* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  email_address_.Swap(&other->email_address_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata ServiceAccount::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// ===================================================================

void Owner::InitAsDefaultInstance() {
}
class Owner::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Owner::kEntityFieldNumber;
const int Owner::kEntityIdFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Owner::Owner()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.storage.v1.Owner)
}
Owner::Owner(const Owner& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  entity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.entity().size() > 0) {
    entity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_);
  }
  entity_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.entity_id().size() > 0) {
    entity_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_id_);
  }
  // @@protoc_insertion_point(copy_constructor:google.storage.v1.Owner)
}

void Owner::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  entity_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Owner::~Owner() {
  // @@protoc_insertion_point(destructor:google.storage.v1.Owner)
  SharedDtor();
}

void Owner::SharedDtor() {
  entity_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Owner::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Owner& Owner::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Owner_google_2fstorage_2fv1_2fstorage_5fresources_2eproto.base);
  return *internal_default_instance();
}


void Owner::Clear() {
// @@protoc_insertion_point(message_clear_start:google.storage.v1.Owner)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  entity_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  entity_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Owner::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Owner*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string entity = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Owner.entity");
        object = msg->mutable_entity();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string entity_id = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("google.storage.v1.Owner.entity_id");
        object = msg->mutable_entity_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Owner::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.storage.v1.Owner)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string entity = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entity()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->entity().data(), static_cast<int>(this->entity().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Owner.entity"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string entity_id = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_entity_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->entity_id().data(), static_cast<int>(this->entity_id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.storage.v1.Owner.entity_id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.storage.v1.Owner)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.storage.v1.Owner)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Owner::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.storage.v1.Owner)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string entity = 1;
  if (this->entity().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity().data(), static_cast<int>(this->entity().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Owner.entity");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->entity(), output);
  }

  // string entity_id = 2;
  if (this->entity_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity_id().data(), static_cast<int>(this->entity_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Owner.entity_id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->entity_id(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:google.storage.v1.Owner)
}

::google::protobuf::uint8* Owner::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:google.storage.v1.Owner)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string entity = 1;
  if (this->entity().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity().data(), static_cast<int>(this->entity().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Owner.entity");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->entity(), target);
  }

  // string entity_id = 2;
  if (this->entity_id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->entity_id().data(), static_cast<int>(this->entity_id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.storage.v1.Owner.entity_id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->entity_id(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.storage.v1.Owner)
  return target;
}

size_t Owner::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.storage.v1.Owner)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string entity = 1;
  if (this->entity().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->entity());
  }

  // string entity_id = 2;
  if (this->entity_id().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->entity_id());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void Owner::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.storage.v1.Owner)
  GOOGLE_DCHECK_NE(&from, this);
  const Owner* source =
      ::google::protobuf::DynamicCastToGenerated<Owner>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.storage.v1.Owner)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.storage.v1.Owner)
    MergeFrom(*source);
  }
}

void Owner::MergeFrom(const Owner& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.storage.v1.Owner)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.entity().size() > 0) {

    entity_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_);
  }
  if (from.entity_id().size() > 0) {

    entity_id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.entity_id_);
  }
}

void Owner::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.storage.v1.Owner)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Owner::CopyFrom(const Owner& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.storage.v1.Owner)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Owner::IsInitialized() const {
  return true;
}

void Owner::Swap(Owner* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Owner::InternalSwap(Owner* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  entity_.Swap(&other->entity_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  entity_id_.Swap(&other->entity_id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
}

::google::protobuf::Metadata Owner::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_google_2fstorage_2fv1_2fstorage_5fresources_2eproto);
  return ::file_level_metadata_google_2fstorage_2fv1_2fstorage_5fresources_2eproto[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace storage
}  // namespace google
namespace google {
namespace protobuf {
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Billing* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Billing >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Billing >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Cors* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Cors >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Cors >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Encryption* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Encryption >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Encryption >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_IamConfiguration_UniformBucketLevelAccess >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_IamConfiguration* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_IamConfiguration >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_IamConfiguration >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Lifecycle_Rule_Action* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Lifecycle_Rule_Action >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Lifecycle_Rule_Action >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Lifecycle_Rule_Condition* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Lifecycle_Rule_Condition >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Lifecycle_Rule_Condition >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Lifecycle_Rule* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Lifecycle_Rule >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Lifecycle_Rule >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Lifecycle* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Lifecycle >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Lifecycle >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Logging* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Logging >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Logging >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_RetentionPolicy* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_RetentionPolicy >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_RetentionPolicy >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Versioning* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Versioning >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Versioning >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_Website* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_Website >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_Website >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket_LabelsEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket_LabelsEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket_LabelsEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Bucket* Arena::CreateMaybeMessage< ::google::storage::v1::Bucket >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Bucket >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::BucketAccessControl* Arena::CreateMaybeMessage< ::google::storage::v1::BucketAccessControl >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::BucketAccessControl >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListBucketAccessControlsResponse* Arena::CreateMaybeMessage< ::google::storage::v1::ListBucketAccessControlsResponse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListBucketAccessControlsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListBucketsResponse* Arena::CreateMaybeMessage< ::google::storage::v1::ListBucketsResponse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListBucketsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Channel_ParamsEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::storage::v1::Channel_ParamsEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Channel_ParamsEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Channel* Arena::CreateMaybeMessage< ::google::storage::v1::Channel >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Channel >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListChannelsResponse_Items* Arena::CreateMaybeMessage< ::google::storage::v1::ListChannelsResponse_Items >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListChannelsResponse_Items >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListChannelsResponse* Arena::CreateMaybeMessage< ::google::storage::v1::ListChannelsResponse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListChannelsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ChecksummedData* Arena::CreateMaybeMessage< ::google::storage::v1::ChecksummedData >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ChecksummedData >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ObjectChecksums* Arena::CreateMaybeMessage< ::google::storage::v1::ObjectChecksums >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ObjectChecksums >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::CommonEnums* Arena::CreateMaybeMessage< ::google::storage::v1::CommonEnums >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::CommonEnums >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ContentRange* Arena::CreateMaybeMessage< ::google::storage::v1::ContentRange >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ContentRange >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::HmacKeyMetadata* Arena::CreateMaybeMessage< ::google::storage::v1::HmacKeyMetadata >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::HmacKeyMetadata >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Notification_CustomAttributesEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Notification* Arena::CreateMaybeMessage< ::google::storage::v1::Notification >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Notification >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListNotificationsResponse* Arena::CreateMaybeMessage< ::google::storage::v1::ListNotificationsResponse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListNotificationsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Object_CustomerEncryption* Arena::CreateMaybeMessage< ::google::storage::v1::Object_CustomerEncryption >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Object_CustomerEncryption >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Object_MetadataEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::storage::v1::Object_MetadataEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Object_MetadataEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Object* Arena::CreateMaybeMessage< ::google::storage::v1::Object >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Object >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ObjectAccessControl* Arena::CreateMaybeMessage< ::google::storage::v1::ObjectAccessControl >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ObjectAccessControl >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListObjectAccessControlsResponse* Arena::CreateMaybeMessage< ::google::storage::v1::ListObjectAccessControlsResponse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListObjectAccessControlsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ListObjectsResponse* Arena::CreateMaybeMessage< ::google::storage::v1::ListObjectsResponse >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ListObjectsResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ProjectTeam* Arena::CreateMaybeMessage< ::google::storage::v1::ProjectTeam >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ProjectTeam >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::ServiceAccount* Arena::CreateMaybeMessage< ::google::storage::v1::ServiceAccount >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::ServiceAccount >(arena);
}
template<> PROTOBUF_NOINLINE ::google::storage::v1::Owner* Arena::CreateMaybeMessage< ::google::storage::v1::Owner >(Arena* arena) {
  return Arena::CreateInternal< ::google::storage::v1::Owner >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
