// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/bigtable/admin/v2/table.proto

#ifndef PROTOBUF_INCLUDED_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto
#define PROTOBUF_INCLUDED_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry.h>
#include <google/protobuf/map_field_inl.h>
#include <google/protobuf/generated_enum_reflection.h>
#include <google/protobuf/unknown_field_set.h>
#include "google/api/annotations.pb.h"
#include <google/protobuf/duration.pb.h>
#include <google/protobuf/timestamp.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto 

namespace protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[9];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto
namespace google {
namespace bigtable {
namespace admin {
namespace v2 {
class ColumnFamily;
class ColumnFamilyDefaultTypeInternal;
extern ColumnFamilyDefaultTypeInternal _ColumnFamily_default_instance_;
class GcRule;
class GcRuleDefaultTypeInternal;
extern GcRuleDefaultTypeInternal _GcRule_default_instance_;
class GcRule_Intersection;
class GcRule_IntersectionDefaultTypeInternal;
extern GcRule_IntersectionDefaultTypeInternal _GcRule_Intersection_default_instance_;
class GcRule_Union;
class GcRule_UnionDefaultTypeInternal;
extern GcRule_UnionDefaultTypeInternal _GcRule_Union_default_instance_;
class Snapshot;
class SnapshotDefaultTypeInternal;
extern SnapshotDefaultTypeInternal _Snapshot_default_instance_;
class Table;
class TableDefaultTypeInternal;
extern TableDefaultTypeInternal _Table_default_instance_;
class Table_ClusterState;
class Table_ClusterStateDefaultTypeInternal;
extern Table_ClusterStateDefaultTypeInternal _Table_ClusterState_default_instance_;
class Table_ClusterStatesEntry_DoNotUse;
class Table_ClusterStatesEntry_DoNotUseDefaultTypeInternal;
extern Table_ClusterStatesEntry_DoNotUseDefaultTypeInternal _Table_ClusterStatesEntry_DoNotUse_default_instance_;
class Table_ColumnFamiliesEntry_DoNotUse;
class Table_ColumnFamiliesEntry_DoNotUseDefaultTypeInternal;
extern Table_ColumnFamiliesEntry_DoNotUseDefaultTypeInternal _Table_ColumnFamiliesEntry_DoNotUse_default_instance_;
}  // namespace v2
}  // namespace admin
}  // namespace bigtable
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::bigtable::admin::v2::ColumnFamily* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::ColumnFamily>(Arena*);
template<> ::google::bigtable::admin::v2::GcRule* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::GcRule>(Arena*);
template<> ::google::bigtable::admin::v2::GcRule_Intersection* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::GcRule_Intersection>(Arena*);
template<> ::google::bigtable::admin::v2::GcRule_Union* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::GcRule_Union>(Arena*);
template<> ::google::bigtable::admin::v2::Snapshot* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::Snapshot>(Arena*);
template<> ::google::bigtable::admin::v2::Table* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::Table>(Arena*);
template<> ::google::bigtable::admin::v2::Table_ClusterState* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::Table_ClusterState>(Arena*);
template<> ::google::bigtable::admin::v2::Table_ClusterStatesEntry_DoNotUse* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::Table_ClusterStatesEntry_DoNotUse>(Arena*);
template<> ::google::bigtable::admin::v2::Table_ColumnFamiliesEntry_DoNotUse* Arena::CreateMaybeMessage<::google::bigtable::admin::v2::Table_ColumnFamiliesEntry_DoNotUse>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace bigtable {
namespace admin {
namespace v2 {

enum Table_ClusterState_ReplicationState {
  Table_ClusterState_ReplicationState_STATE_NOT_KNOWN = 0,
  Table_ClusterState_ReplicationState_INITIALIZING = 1,
  Table_ClusterState_ReplicationState_PLANNED_MAINTENANCE = 2,
  Table_ClusterState_ReplicationState_UNPLANNED_MAINTENANCE = 3,
  Table_ClusterState_ReplicationState_READY = 4,
  Table_ClusterState_ReplicationState_Table_ClusterState_ReplicationState_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  Table_ClusterState_ReplicationState_Table_ClusterState_ReplicationState_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool Table_ClusterState_ReplicationState_IsValid(int value);
const Table_ClusterState_ReplicationState Table_ClusterState_ReplicationState_ReplicationState_MIN = Table_ClusterState_ReplicationState_STATE_NOT_KNOWN;
const Table_ClusterState_ReplicationState Table_ClusterState_ReplicationState_ReplicationState_MAX = Table_ClusterState_ReplicationState_READY;
const int Table_ClusterState_ReplicationState_ReplicationState_ARRAYSIZE = Table_ClusterState_ReplicationState_ReplicationState_MAX + 1;

const ::google::protobuf::EnumDescriptor* Table_ClusterState_ReplicationState_descriptor();
inline const ::std::string& Table_ClusterState_ReplicationState_Name(Table_ClusterState_ReplicationState value) {
  return ::google::protobuf::internal::NameOfEnum(
    Table_ClusterState_ReplicationState_descriptor(), value);
}
inline bool Table_ClusterState_ReplicationState_Parse(
    const ::std::string& name, Table_ClusterState_ReplicationState* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Table_ClusterState_ReplicationState>(
    Table_ClusterState_ReplicationState_descriptor(), name, value);
}
enum Table_TimestampGranularity {
  Table_TimestampGranularity_TIMESTAMP_GRANULARITY_UNSPECIFIED = 0,
  Table_TimestampGranularity_MILLIS = 1,
  Table_TimestampGranularity_Table_TimestampGranularity_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  Table_TimestampGranularity_Table_TimestampGranularity_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool Table_TimestampGranularity_IsValid(int value);
const Table_TimestampGranularity Table_TimestampGranularity_TimestampGranularity_MIN = Table_TimestampGranularity_TIMESTAMP_GRANULARITY_UNSPECIFIED;
const Table_TimestampGranularity Table_TimestampGranularity_TimestampGranularity_MAX = Table_TimestampGranularity_MILLIS;
const int Table_TimestampGranularity_TimestampGranularity_ARRAYSIZE = Table_TimestampGranularity_TimestampGranularity_MAX + 1;

const ::google::protobuf::EnumDescriptor* Table_TimestampGranularity_descriptor();
inline const ::std::string& Table_TimestampGranularity_Name(Table_TimestampGranularity value) {
  return ::google::protobuf::internal::NameOfEnum(
    Table_TimestampGranularity_descriptor(), value);
}
inline bool Table_TimestampGranularity_Parse(
    const ::std::string& name, Table_TimestampGranularity* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Table_TimestampGranularity>(
    Table_TimestampGranularity_descriptor(), name, value);
}
enum Table_View {
  Table_View_VIEW_UNSPECIFIED = 0,
  Table_View_NAME_ONLY = 1,
  Table_View_SCHEMA_VIEW = 2,
  Table_View_REPLICATION_VIEW = 3,
  Table_View_FULL = 4,
  Table_View_Table_View_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  Table_View_Table_View_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool Table_View_IsValid(int value);
const Table_View Table_View_View_MIN = Table_View_VIEW_UNSPECIFIED;
const Table_View Table_View_View_MAX = Table_View_FULL;
const int Table_View_View_ARRAYSIZE = Table_View_View_MAX + 1;

const ::google::protobuf::EnumDescriptor* Table_View_descriptor();
inline const ::std::string& Table_View_Name(Table_View value) {
  return ::google::protobuf::internal::NameOfEnum(
    Table_View_descriptor(), value);
}
inline bool Table_View_Parse(
    const ::std::string& name, Table_View* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Table_View>(
    Table_View_descriptor(), name, value);
}
enum Snapshot_State {
  Snapshot_State_STATE_NOT_KNOWN = 0,
  Snapshot_State_READY = 1,
  Snapshot_State_CREATING = 2,
  Snapshot_State_Snapshot_State_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
  Snapshot_State_Snapshot_State_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool Snapshot_State_IsValid(int value);
const Snapshot_State Snapshot_State_State_MIN = Snapshot_State_STATE_NOT_KNOWN;
const Snapshot_State Snapshot_State_State_MAX = Snapshot_State_CREATING;
const int Snapshot_State_State_ARRAYSIZE = Snapshot_State_State_MAX + 1;

const ::google::protobuf::EnumDescriptor* Snapshot_State_descriptor();
inline const ::std::string& Snapshot_State_Name(Snapshot_State value) {
  return ::google::protobuf::internal::NameOfEnum(
    Snapshot_State_descriptor(), value);
}
inline bool Snapshot_State_Parse(
    const ::std::string& name, Snapshot_State* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Snapshot_State>(
    Snapshot_State_descriptor(), name, value);
}
// ===================================================================

class Table_ClusterState : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.Table.ClusterState) */ {
 public:
  Table_ClusterState();
  virtual ~Table_ClusterState();

  Table_ClusterState(const Table_ClusterState& from);

  inline Table_ClusterState& operator=(const Table_ClusterState& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Table_ClusterState(Table_ClusterState&& from) noexcept
    : Table_ClusterState() {
    *this = ::std::move(from);
  }

  inline Table_ClusterState& operator=(Table_ClusterState&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Table_ClusterState& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Table_ClusterState* internal_default_instance() {
    return reinterpret_cast<const Table_ClusterState*>(
               &_Table_ClusterState_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(Table_ClusterState* other);
  friend void swap(Table_ClusterState& a, Table_ClusterState& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Table_ClusterState* New() const final {
    return CreateMaybeMessage<Table_ClusterState>(NULL);
  }

  Table_ClusterState* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Table_ClusterState>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Table_ClusterState& from);
  void MergeFrom(const Table_ClusterState& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Table_ClusterState* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  typedef Table_ClusterState_ReplicationState ReplicationState;
  static const ReplicationState STATE_NOT_KNOWN =
    Table_ClusterState_ReplicationState_STATE_NOT_KNOWN;
  static const ReplicationState INITIALIZING =
    Table_ClusterState_ReplicationState_INITIALIZING;
  static const ReplicationState PLANNED_MAINTENANCE =
    Table_ClusterState_ReplicationState_PLANNED_MAINTENANCE;
  static const ReplicationState UNPLANNED_MAINTENANCE =
    Table_ClusterState_ReplicationState_UNPLANNED_MAINTENANCE;
  static const ReplicationState READY =
    Table_ClusterState_ReplicationState_READY;
  static inline bool ReplicationState_IsValid(int value) {
    return Table_ClusterState_ReplicationState_IsValid(value);
  }
  static const ReplicationState ReplicationState_MIN =
    Table_ClusterState_ReplicationState_ReplicationState_MIN;
  static const ReplicationState ReplicationState_MAX =
    Table_ClusterState_ReplicationState_ReplicationState_MAX;
  static const int ReplicationState_ARRAYSIZE =
    Table_ClusterState_ReplicationState_ReplicationState_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  ReplicationState_descriptor() {
    return Table_ClusterState_ReplicationState_descriptor();
  }
  static inline const ::std::string& ReplicationState_Name(ReplicationState value) {
    return Table_ClusterState_ReplicationState_Name(value);
  }
  static inline bool ReplicationState_Parse(const ::std::string& name,
      ReplicationState* value) {
    return Table_ClusterState_ReplicationState_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // .google.bigtable.admin.v2.Table.ClusterState.ReplicationState replication_state = 1;
  void clear_replication_state();
  static const int kReplicationStateFieldNumber = 1;
  ::google::bigtable::admin::v2::Table_ClusterState_ReplicationState replication_state() const;
  void set_replication_state(::google::bigtable::admin::v2::Table_ClusterState_ReplicationState value);

  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.Table.ClusterState)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  int replication_state_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Table_ClusterStatesEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<Table_ClusterStatesEntry_DoNotUse, 
    ::std::string, ::google::bigtable::admin::v2::Table_ClusterState,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<Table_ClusterStatesEntry_DoNotUse, 
    ::std::string, ::google::bigtable::admin::v2::Table_ClusterState,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  Table_ClusterStatesEntry_DoNotUse();
  Table_ClusterStatesEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const Table_ClusterStatesEntry_DoNotUse& other);
  static const Table_ClusterStatesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const Table_ClusterStatesEntry_DoNotUse*>(&_Table_ClusterStatesEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

// -------------------------------------------------------------------

class Table_ColumnFamiliesEntry_DoNotUse : public ::google::protobuf::internal::MapEntry<Table_ColumnFamiliesEntry_DoNotUse, 
    ::std::string, ::google::bigtable::admin::v2::ColumnFamily,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntry<Table_ColumnFamiliesEntry_DoNotUse, 
    ::std::string, ::google::bigtable::admin::v2::ColumnFamily,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
    0 > SuperType;
  Table_ColumnFamiliesEntry_DoNotUse();
  Table_ColumnFamiliesEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const Table_ColumnFamiliesEntry_DoNotUse& other);
  static const Table_ColumnFamiliesEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const Table_ColumnFamiliesEntry_DoNotUse*>(&_Table_ColumnFamiliesEntry_DoNotUse_default_instance_); }
  void MergeFrom(const ::google::protobuf::Message& other) final;
  ::google::protobuf::Metadata GetMetadata() const;
};

// -------------------------------------------------------------------

class Table : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.Table) */ {
 public:
  Table();
  virtual ~Table();

  Table(const Table& from);

  inline Table& operator=(const Table& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Table(Table&& from) noexcept
    : Table() {
    *this = ::std::move(from);
  }

  inline Table& operator=(Table&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Table& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Table* internal_default_instance() {
    return reinterpret_cast<const Table*>(
               &_Table_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(Table* other);
  friend void swap(Table& a, Table& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Table* New() const final {
    return CreateMaybeMessage<Table>(NULL);
  }

  Table* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Table>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Table& from);
  void MergeFrom(const Table& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Table* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  typedef Table_ClusterState ClusterState;

  typedef Table_TimestampGranularity TimestampGranularity;
  static const TimestampGranularity TIMESTAMP_GRANULARITY_UNSPECIFIED =
    Table_TimestampGranularity_TIMESTAMP_GRANULARITY_UNSPECIFIED;
  static const TimestampGranularity MILLIS =
    Table_TimestampGranularity_MILLIS;
  static inline bool TimestampGranularity_IsValid(int value) {
    return Table_TimestampGranularity_IsValid(value);
  }
  static const TimestampGranularity TimestampGranularity_MIN =
    Table_TimestampGranularity_TimestampGranularity_MIN;
  static const TimestampGranularity TimestampGranularity_MAX =
    Table_TimestampGranularity_TimestampGranularity_MAX;
  static const int TimestampGranularity_ARRAYSIZE =
    Table_TimestampGranularity_TimestampGranularity_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  TimestampGranularity_descriptor() {
    return Table_TimestampGranularity_descriptor();
  }
  static inline const ::std::string& TimestampGranularity_Name(TimestampGranularity value) {
    return Table_TimestampGranularity_Name(value);
  }
  static inline bool TimestampGranularity_Parse(const ::std::string& name,
      TimestampGranularity* value) {
    return Table_TimestampGranularity_Parse(name, value);
  }

  typedef Table_View View;
  static const View VIEW_UNSPECIFIED =
    Table_View_VIEW_UNSPECIFIED;
  static const View NAME_ONLY =
    Table_View_NAME_ONLY;
  static const View SCHEMA_VIEW =
    Table_View_SCHEMA_VIEW;
  static const View REPLICATION_VIEW =
    Table_View_REPLICATION_VIEW;
  static const View FULL =
    Table_View_FULL;
  static inline bool View_IsValid(int value) {
    return Table_View_IsValid(value);
  }
  static const View View_MIN =
    Table_View_View_MIN;
  static const View View_MAX =
    Table_View_View_MAX;
  static const int View_ARRAYSIZE =
    Table_View_View_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  View_descriptor() {
    return Table_View_descriptor();
  }
  static inline const ::std::string& View_Name(View value) {
    return Table_View_Name(value);
  }
  static inline bool View_Parse(const ::std::string& name,
      View* value) {
    return Table_View_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // map<string, .google.bigtable.admin.v2.Table.ClusterState> cluster_states = 2;
  int cluster_states_size() const;
  void clear_cluster_states();
  static const int kClusterStatesFieldNumber = 2;
  const ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::Table_ClusterState >&
      cluster_states() const;
  ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::Table_ClusterState >*
      mutable_cluster_states();

  // map<string, .google.bigtable.admin.v2.ColumnFamily> column_families = 3;
  int column_families_size() const;
  void clear_column_families();
  static const int kColumnFamiliesFieldNumber = 3;
  const ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::ColumnFamily >&
      column_families() const;
  ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::ColumnFamily >*
      mutable_column_families();

  // string name = 1;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // .google.bigtable.admin.v2.Table.TimestampGranularity granularity = 4;
  void clear_granularity();
  static const int kGranularityFieldNumber = 4;
  ::google::bigtable::admin::v2::Table_TimestampGranularity granularity() const;
  void set_granularity(::google::bigtable::admin::v2::Table_TimestampGranularity value);

  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.Table)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::MapField<
      Table_ClusterStatesEntry_DoNotUse,
      ::std::string, ::google::bigtable::admin::v2::Table_ClusterState,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > cluster_states_;
  ::google::protobuf::internal::MapField<
      Table_ColumnFamiliesEntry_DoNotUse,
      ::std::string, ::google::bigtable::admin::v2::ColumnFamily,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
      0 > column_families_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  int granularity_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ColumnFamily : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.ColumnFamily) */ {
 public:
  ColumnFamily();
  virtual ~ColumnFamily();

  ColumnFamily(const ColumnFamily& from);

  inline ColumnFamily& operator=(const ColumnFamily& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  ColumnFamily(ColumnFamily&& from) noexcept
    : ColumnFamily() {
    *this = ::std::move(from);
  }

  inline ColumnFamily& operator=(ColumnFamily&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ColumnFamily& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ColumnFamily* internal_default_instance() {
    return reinterpret_cast<const ColumnFamily*>(
               &_ColumnFamily_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(ColumnFamily* other);
  friend void swap(ColumnFamily& a, ColumnFamily& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline ColumnFamily* New() const final {
    return CreateMaybeMessage<ColumnFamily>(NULL);
  }

  ColumnFamily* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ColumnFamily>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ColumnFamily& from);
  void MergeFrom(const ColumnFamily& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ColumnFamily* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // .google.bigtable.admin.v2.GcRule gc_rule = 1;
  bool has_gc_rule() const;
  void clear_gc_rule();
  static const int kGcRuleFieldNumber = 1;
  private:
  const ::google::bigtable::admin::v2::GcRule& _internal_gc_rule() const;
  public:
  const ::google::bigtable::admin::v2::GcRule& gc_rule() const;
  ::google::bigtable::admin::v2::GcRule* release_gc_rule();
  ::google::bigtable::admin::v2::GcRule* mutable_gc_rule();
  void set_allocated_gc_rule(::google::bigtable::admin::v2::GcRule* gc_rule);

  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.ColumnFamily)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::bigtable::admin::v2::GcRule* gc_rule_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class GcRule_Intersection : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.GcRule.Intersection) */ {
 public:
  GcRule_Intersection();
  virtual ~GcRule_Intersection();

  GcRule_Intersection(const GcRule_Intersection& from);

  inline GcRule_Intersection& operator=(const GcRule_Intersection& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  GcRule_Intersection(GcRule_Intersection&& from) noexcept
    : GcRule_Intersection() {
    *this = ::std::move(from);
  }

  inline GcRule_Intersection& operator=(GcRule_Intersection&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const GcRule_Intersection& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GcRule_Intersection* internal_default_instance() {
    return reinterpret_cast<const GcRule_Intersection*>(
               &_GcRule_Intersection_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  void Swap(GcRule_Intersection* other);
  friend void swap(GcRule_Intersection& a, GcRule_Intersection& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline GcRule_Intersection* New() const final {
    return CreateMaybeMessage<GcRule_Intersection>(NULL);
  }

  GcRule_Intersection* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<GcRule_Intersection>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const GcRule_Intersection& from);
  void MergeFrom(const GcRule_Intersection& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GcRule_Intersection* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.bigtable.admin.v2.GcRule rules = 1;
  int rules_size() const;
  void clear_rules();
  static const int kRulesFieldNumber = 1;
  ::google::bigtable::admin::v2::GcRule* mutable_rules(int index);
  ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >*
      mutable_rules();
  const ::google::bigtable::admin::v2::GcRule& rules(int index) const;
  ::google::bigtable::admin::v2::GcRule* add_rules();
  const ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >&
      rules() const;

  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.GcRule.Intersection)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule > rules_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class GcRule_Union : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.GcRule.Union) */ {
 public:
  GcRule_Union();
  virtual ~GcRule_Union();

  GcRule_Union(const GcRule_Union& from);

  inline GcRule_Union& operator=(const GcRule_Union& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  GcRule_Union(GcRule_Union&& from) noexcept
    : GcRule_Union() {
    *this = ::std::move(from);
  }

  inline GcRule_Union& operator=(GcRule_Union&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const GcRule_Union& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GcRule_Union* internal_default_instance() {
    return reinterpret_cast<const GcRule_Union*>(
               &_GcRule_Union_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  void Swap(GcRule_Union* other);
  friend void swap(GcRule_Union& a, GcRule_Union& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline GcRule_Union* New() const final {
    return CreateMaybeMessage<GcRule_Union>(NULL);
  }

  GcRule_Union* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<GcRule_Union>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const GcRule_Union& from);
  void MergeFrom(const GcRule_Union& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GcRule_Union* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.bigtable.admin.v2.GcRule rules = 1;
  int rules_size() const;
  void clear_rules();
  static const int kRulesFieldNumber = 1;
  ::google::bigtable::admin::v2::GcRule* mutable_rules(int index);
  ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >*
      mutable_rules();
  const ::google::bigtable::admin::v2::GcRule& rules(int index) const;
  ::google::bigtable::admin::v2::GcRule* add_rules();
  const ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >&
      rules() const;

  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.GcRule.Union)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule > rules_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class GcRule : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.GcRule) */ {
 public:
  GcRule();
  virtual ~GcRule();

  GcRule(const GcRule& from);

  inline GcRule& operator=(const GcRule& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  GcRule(GcRule&& from) noexcept
    : GcRule() {
    *this = ::std::move(from);
  }

  inline GcRule& operator=(GcRule&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const GcRule& default_instance();

  enum RuleCase {
    kMaxNumVersions = 1,
    kMaxAge = 2,
    kIntersection = 3,
    kUnion = 4,
    RULE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const GcRule* internal_default_instance() {
    return reinterpret_cast<const GcRule*>(
               &_GcRule_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  void Swap(GcRule* other);
  friend void swap(GcRule& a, GcRule& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline GcRule* New() const final {
    return CreateMaybeMessage<GcRule>(NULL);
  }

  GcRule* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<GcRule>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const GcRule& from);
  void MergeFrom(const GcRule& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(GcRule* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  typedef GcRule_Intersection Intersection;
  typedef GcRule_Union Union;

  // accessors -------------------------------------------------------

  // int32 max_num_versions = 1;
  private:
  bool has_max_num_versions() const;
  public:
  void clear_max_num_versions();
  static const int kMaxNumVersionsFieldNumber = 1;
  ::google::protobuf::int32 max_num_versions() const;
  void set_max_num_versions(::google::protobuf::int32 value);

  // .google.protobuf.Duration max_age = 2;
  bool has_max_age() const;
  void clear_max_age();
  static const int kMaxAgeFieldNumber = 2;
  private:
  const ::google::protobuf::Duration& _internal_max_age() const;
  public:
  const ::google::protobuf::Duration& max_age() const;
  ::google::protobuf::Duration* release_max_age();
  ::google::protobuf::Duration* mutable_max_age();
  void set_allocated_max_age(::google::protobuf::Duration* max_age);

  // .google.bigtable.admin.v2.GcRule.Intersection intersection = 3;
  bool has_intersection() const;
  void clear_intersection();
  static const int kIntersectionFieldNumber = 3;
  private:
  const ::google::bigtable::admin::v2::GcRule_Intersection& _internal_intersection() const;
  public:
  const ::google::bigtable::admin::v2::GcRule_Intersection& intersection() const;
  ::google::bigtable::admin::v2::GcRule_Intersection* release_intersection();
  ::google::bigtable::admin::v2::GcRule_Intersection* mutable_intersection();
  void set_allocated_intersection(::google::bigtable::admin::v2::GcRule_Intersection* intersection);

  // .google.bigtable.admin.v2.GcRule.Union union = 4;
  bool has_union_() const;
  void clear_union_();
  static const int kUnionFieldNumber = 4;
  private:
  const ::google::bigtable::admin::v2::GcRule_Union& _internal_union_() const;
  public:
  const ::google::bigtable::admin::v2::GcRule_Union& union_() const;
  ::google::bigtable::admin::v2::GcRule_Union* release_union_();
  ::google::bigtable::admin::v2::GcRule_Union* mutable_union_();
  void set_allocated_union_(::google::bigtable::admin::v2::GcRule_Union* union_);

  void clear_rule();
  RuleCase rule_case() const;
  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.GcRule)
 private:
  void set_has_max_num_versions();
  void set_has_max_age();
  void set_has_intersection();
  void set_has_union_();

  inline bool has_rule() const;
  inline void clear_has_rule();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  union RuleUnion {
    RuleUnion() {}
    ::google::protobuf::int32 max_num_versions_;
    ::google::protobuf::Duration* max_age_;
    ::google::bigtable::admin::v2::GcRule_Intersection* intersection_;
    ::google::bigtable::admin::v2::GcRule_Union* union__;
  } rule_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class Snapshot : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.bigtable.admin.v2.Snapshot) */ {
 public:
  Snapshot();
  virtual ~Snapshot();

  Snapshot(const Snapshot& from);

  inline Snapshot& operator=(const Snapshot& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Snapshot(Snapshot&& from) noexcept
    : Snapshot() {
    *this = ::std::move(from);
  }

  inline Snapshot& operator=(Snapshot&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Snapshot& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Snapshot* internal_default_instance() {
    return reinterpret_cast<const Snapshot*>(
               &_Snapshot_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  void Swap(Snapshot* other);
  friend void swap(Snapshot& a, Snapshot& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Snapshot* New() const final {
    return CreateMaybeMessage<Snapshot>(NULL);
  }

  Snapshot* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Snapshot>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Snapshot& from);
  void MergeFrom(const Snapshot& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Snapshot* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  typedef Snapshot_State State;
  static const State STATE_NOT_KNOWN =
    Snapshot_State_STATE_NOT_KNOWN;
  static const State READY =
    Snapshot_State_READY;
  static const State CREATING =
    Snapshot_State_CREATING;
  static inline bool State_IsValid(int value) {
    return Snapshot_State_IsValid(value);
  }
  static const State State_MIN =
    Snapshot_State_State_MIN;
  static const State State_MAX =
    Snapshot_State_State_MAX;
  static const int State_ARRAYSIZE =
    Snapshot_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  State_descriptor() {
    return Snapshot_State_descriptor();
  }
  static inline const ::std::string& State_Name(State value) {
    return Snapshot_State_Name(value);
  }
  static inline bool State_Parse(const ::std::string& name,
      State* value) {
    return Snapshot_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // string name = 1;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  #if LANG_CXX11
  void set_name(::std::string&& value);
  #endif
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);

  // string description = 7;
  void clear_description();
  static const int kDescriptionFieldNumber = 7;
  const ::std::string& description() const;
  void set_description(const ::std::string& value);
  #if LANG_CXX11
  void set_description(::std::string&& value);
  #endif
  void set_description(const char* value);
  void set_description(const char* value, size_t size);
  ::std::string* mutable_description();
  ::std::string* release_description();
  void set_allocated_description(::std::string* description);

  // .google.bigtable.admin.v2.Table source_table = 2;
  bool has_source_table() const;
  void clear_source_table();
  static const int kSourceTableFieldNumber = 2;
  private:
  const ::google::bigtable::admin::v2::Table& _internal_source_table() const;
  public:
  const ::google::bigtable::admin::v2::Table& source_table() const;
  ::google::bigtable::admin::v2::Table* release_source_table();
  ::google::bigtable::admin::v2::Table* mutable_source_table();
  void set_allocated_source_table(::google::bigtable::admin::v2::Table* source_table);

  // .google.protobuf.Timestamp create_time = 4;
  bool has_create_time() const;
  void clear_create_time();
  static const int kCreateTimeFieldNumber = 4;
  private:
  const ::google::protobuf::Timestamp& _internal_create_time() const;
  public:
  const ::google::protobuf::Timestamp& create_time() const;
  ::google::protobuf::Timestamp* release_create_time();
  ::google::protobuf::Timestamp* mutable_create_time();
  void set_allocated_create_time(::google::protobuf::Timestamp* create_time);

  // .google.protobuf.Timestamp delete_time = 5;
  bool has_delete_time() const;
  void clear_delete_time();
  static const int kDeleteTimeFieldNumber = 5;
  private:
  const ::google::protobuf::Timestamp& _internal_delete_time() const;
  public:
  const ::google::protobuf::Timestamp& delete_time() const;
  ::google::protobuf::Timestamp* release_delete_time();
  ::google::protobuf::Timestamp* mutable_delete_time();
  void set_allocated_delete_time(::google::protobuf::Timestamp* delete_time);

  // int64 data_size_bytes = 3;
  void clear_data_size_bytes();
  static const int kDataSizeBytesFieldNumber = 3;
  ::google::protobuf::int64 data_size_bytes() const;
  void set_data_size_bytes(::google::protobuf::int64 value);

  // .google.bigtable.admin.v2.Snapshot.State state = 6;
  void clear_state();
  static const int kStateFieldNumber = 6;
  ::google::bigtable::admin::v2::Snapshot_State state() const;
  void set_state(::google::bigtable::admin::v2::Snapshot_State value);

  // @@protoc_insertion_point(class_scope:google.bigtable.admin.v2.Snapshot)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  ::google::protobuf::internal::ArenaStringPtr description_;
  ::google::bigtable::admin::v2::Table* source_table_;
  ::google::protobuf::Timestamp* create_time_;
  ::google::protobuf::Timestamp* delete_time_;
  ::google::protobuf::int64 data_size_bytes_;
  int state_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto::TableStruct;
};
// ===================================================================


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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// Table_ClusterState

// .google.bigtable.admin.v2.Table.ClusterState.ReplicationState replication_state = 1;
inline void Table_ClusterState::clear_replication_state() {
  replication_state_ = 0;
}
inline ::google::bigtable::admin::v2::Table_ClusterState_ReplicationState Table_ClusterState::replication_state() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Table.ClusterState.replication_state)
  return static_cast< ::google::bigtable::admin::v2::Table_ClusterState_ReplicationState >(replication_state_);
}
inline void Table_ClusterState::set_replication_state(::google::bigtable::admin::v2::Table_ClusterState_ReplicationState value) {
  
  replication_state_ = value;
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Table.ClusterState.replication_state)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Table

// string name = 1;
inline void Table::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& Table::name() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Table.name)
  return name_.GetNoArena();
}
inline void Table::set_name(const ::std::string& value) {
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Table.name)
}
#if LANG_CXX11
inline void Table::set_name(::std::string&& value) {
  
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.bigtable.admin.v2.Table.name)
}
#endif
inline void Table::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.bigtable.admin.v2.Table.name)
}
inline void Table::set_name(const char* value, size_t size) {
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.bigtable.admin.v2.Table.name)
}
inline ::std::string* Table::mutable_name() {
  
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.Table.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Table::release_name() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.Table.name)
  
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Table::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    
  } else {
    
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.Table.name)
}

// map<string, .google.bigtable.admin.v2.Table.ClusterState> cluster_states = 2;
inline int Table::cluster_states_size() const {
  return cluster_states_.size();
}
inline void Table::clear_cluster_states() {
  cluster_states_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::Table_ClusterState >&
Table::cluster_states() const {
  // @@protoc_insertion_point(field_map:google.bigtable.admin.v2.Table.cluster_states)
  return cluster_states_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::Table_ClusterState >*
Table::mutable_cluster_states() {
  // @@protoc_insertion_point(field_mutable_map:google.bigtable.admin.v2.Table.cluster_states)
  return cluster_states_.MutableMap();
}

// map<string, .google.bigtable.admin.v2.ColumnFamily> column_families = 3;
inline int Table::column_families_size() const {
  return column_families_.size();
}
inline void Table::clear_column_families() {
  column_families_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::ColumnFamily >&
Table::column_families() const {
  // @@protoc_insertion_point(field_map:google.bigtable.admin.v2.Table.column_families)
  return column_families_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::google::bigtable::admin::v2::ColumnFamily >*
Table::mutable_column_families() {
  // @@protoc_insertion_point(field_mutable_map:google.bigtable.admin.v2.Table.column_families)
  return column_families_.MutableMap();
}

// .google.bigtable.admin.v2.Table.TimestampGranularity granularity = 4;
inline void Table::clear_granularity() {
  granularity_ = 0;
}
inline ::google::bigtable::admin::v2::Table_TimestampGranularity Table::granularity() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Table.granularity)
  return static_cast< ::google::bigtable::admin::v2::Table_TimestampGranularity >(granularity_);
}
inline void Table::set_granularity(::google::bigtable::admin::v2::Table_TimestampGranularity value) {
  
  granularity_ = value;
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Table.granularity)
}

// -------------------------------------------------------------------

// ColumnFamily

// .google.bigtable.admin.v2.GcRule gc_rule = 1;
inline bool ColumnFamily::has_gc_rule() const {
  return this != internal_default_instance() && gc_rule_ != NULL;
}
inline void ColumnFamily::clear_gc_rule() {
  if (GetArenaNoVirtual() == NULL && gc_rule_ != NULL) {
    delete gc_rule_;
  }
  gc_rule_ = NULL;
}
inline const ::google::bigtable::admin::v2::GcRule& ColumnFamily::_internal_gc_rule() const {
  return *gc_rule_;
}
inline const ::google::bigtable::admin::v2::GcRule& ColumnFamily::gc_rule() const {
  const ::google::bigtable::admin::v2::GcRule* p = gc_rule_;
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.ColumnFamily.gc_rule)
  return p != NULL ? *p : *reinterpret_cast<const ::google::bigtable::admin::v2::GcRule*>(
      &::google::bigtable::admin::v2::_GcRule_default_instance_);
}
inline ::google::bigtable::admin::v2::GcRule* ColumnFamily::release_gc_rule() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.ColumnFamily.gc_rule)
  
  ::google::bigtable::admin::v2::GcRule* temp = gc_rule_;
  gc_rule_ = NULL;
  return temp;
}
inline ::google::bigtable::admin::v2::GcRule* ColumnFamily::mutable_gc_rule() {
  
  if (gc_rule_ == NULL) {
    auto* p = CreateMaybeMessage<::google::bigtable::admin::v2::GcRule>(GetArenaNoVirtual());
    gc_rule_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.ColumnFamily.gc_rule)
  return gc_rule_;
}
inline void ColumnFamily::set_allocated_gc_rule(::google::bigtable::admin::v2::GcRule* gc_rule) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete gc_rule_;
  }
  if (gc_rule) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      gc_rule = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, gc_rule, submessage_arena);
    }
    
  } else {
    
  }
  gc_rule_ = gc_rule;
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.ColumnFamily.gc_rule)
}

// -------------------------------------------------------------------

// GcRule_Intersection

// repeated .google.bigtable.admin.v2.GcRule rules = 1;
inline int GcRule_Intersection::rules_size() const {
  return rules_.size();
}
inline void GcRule_Intersection::clear_rules() {
  rules_.Clear();
}
inline ::google::bigtable::admin::v2::GcRule* GcRule_Intersection::mutable_rules(int index) {
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.GcRule.Intersection.rules)
  return rules_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >*
GcRule_Intersection::mutable_rules() {
  // @@protoc_insertion_point(field_mutable_list:google.bigtable.admin.v2.GcRule.Intersection.rules)
  return &rules_;
}
inline const ::google::bigtable::admin::v2::GcRule& GcRule_Intersection::rules(int index) const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.GcRule.Intersection.rules)
  return rules_.Get(index);
}
inline ::google::bigtable::admin::v2::GcRule* GcRule_Intersection::add_rules() {
  // @@protoc_insertion_point(field_add:google.bigtable.admin.v2.GcRule.Intersection.rules)
  return rules_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >&
GcRule_Intersection::rules() const {
  // @@protoc_insertion_point(field_list:google.bigtable.admin.v2.GcRule.Intersection.rules)
  return rules_;
}

// -------------------------------------------------------------------

// GcRule_Union

// repeated .google.bigtable.admin.v2.GcRule rules = 1;
inline int GcRule_Union::rules_size() const {
  return rules_.size();
}
inline void GcRule_Union::clear_rules() {
  rules_.Clear();
}
inline ::google::bigtable::admin::v2::GcRule* GcRule_Union::mutable_rules(int index) {
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.GcRule.Union.rules)
  return rules_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >*
GcRule_Union::mutable_rules() {
  // @@protoc_insertion_point(field_mutable_list:google.bigtable.admin.v2.GcRule.Union.rules)
  return &rules_;
}
inline const ::google::bigtable::admin::v2::GcRule& GcRule_Union::rules(int index) const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.GcRule.Union.rules)
  return rules_.Get(index);
}
inline ::google::bigtable::admin::v2::GcRule* GcRule_Union::add_rules() {
  // @@protoc_insertion_point(field_add:google.bigtable.admin.v2.GcRule.Union.rules)
  return rules_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::bigtable::admin::v2::GcRule >&
GcRule_Union::rules() const {
  // @@protoc_insertion_point(field_list:google.bigtable.admin.v2.GcRule.Union.rules)
  return rules_;
}

// -------------------------------------------------------------------

// GcRule

// int32 max_num_versions = 1;
inline bool GcRule::has_max_num_versions() const {
  return rule_case() == kMaxNumVersions;
}
inline void GcRule::set_has_max_num_versions() {
  _oneof_case_[0] = kMaxNumVersions;
}
inline void GcRule::clear_max_num_versions() {
  if (has_max_num_versions()) {
    rule_.max_num_versions_ = 0;
    clear_has_rule();
  }
}
inline ::google::protobuf::int32 GcRule::max_num_versions() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.GcRule.max_num_versions)
  if (has_max_num_versions()) {
    return rule_.max_num_versions_;
  }
  return 0;
}
inline void GcRule::set_max_num_versions(::google::protobuf::int32 value) {
  if (!has_max_num_versions()) {
    clear_rule();
    set_has_max_num_versions();
  }
  rule_.max_num_versions_ = value;
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.GcRule.max_num_versions)
}

// .google.protobuf.Duration max_age = 2;
inline bool GcRule::has_max_age() const {
  return rule_case() == kMaxAge;
}
inline void GcRule::set_has_max_age() {
  _oneof_case_[0] = kMaxAge;
}
inline const ::google::protobuf::Duration& GcRule::_internal_max_age() const {
  return *rule_.max_age_;
}
inline ::google::protobuf::Duration* GcRule::release_max_age() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.GcRule.max_age)
  if (has_max_age()) {
    clear_has_rule();
      ::google::protobuf::Duration* temp = rule_.max_age_;
    rule_.max_age_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::protobuf::Duration& GcRule::max_age() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.GcRule.max_age)
  return has_max_age()
      ? *rule_.max_age_
      : *reinterpret_cast< ::google::protobuf::Duration*>(&::google::protobuf::_Duration_default_instance_);
}
inline ::google::protobuf::Duration* GcRule::mutable_max_age() {
  if (!has_max_age()) {
    clear_rule();
    set_has_max_age();
    rule_.max_age_ = CreateMaybeMessage< ::google::protobuf::Duration >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.GcRule.max_age)
  return rule_.max_age_;
}

// .google.bigtable.admin.v2.GcRule.Intersection intersection = 3;
inline bool GcRule::has_intersection() const {
  return rule_case() == kIntersection;
}
inline void GcRule::set_has_intersection() {
  _oneof_case_[0] = kIntersection;
}
inline void GcRule::clear_intersection() {
  if (has_intersection()) {
    delete rule_.intersection_;
    clear_has_rule();
  }
}
inline const ::google::bigtable::admin::v2::GcRule_Intersection& GcRule::_internal_intersection() const {
  return *rule_.intersection_;
}
inline ::google::bigtable::admin::v2::GcRule_Intersection* GcRule::release_intersection() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.GcRule.intersection)
  if (has_intersection()) {
    clear_has_rule();
      ::google::bigtable::admin::v2::GcRule_Intersection* temp = rule_.intersection_;
    rule_.intersection_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::bigtable::admin::v2::GcRule_Intersection& GcRule::intersection() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.GcRule.intersection)
  return has_intersection()
      ? *rule_.intersection_
      : *reinterpret_cast< ::google::bigtable::admin::v2::GcRule_Intersection*>(&::google::bigtable::admin::v2::_GcRule_Intersection_default_instance_);
}
inline ::google::bigtable::admin::v2::GcRule_Intersection* GcRule::mutable_intersection() {
  if (!has_intersection()) {
    clear_rule();
    set_has_intersection();
    rule_.intersection_ = CreateMaybeMessage< ::google::bigtable::admin::v2::GcRule_Intersection >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.GcRule.intersection)
  return rule_.intersection_;
}

// .google.bigtable.admin.v2.GcRule.Union union = 4;
inline bool GcRule::has_union_() const {
  return rule_case() == kUnion;
}
inline void GcRule::set_has_union_() {
  _oneof_case_[0] = kUnion;
}
inline void GcRule::clear_union_() {
  if (has_union_()) {
    delete rule_.union__;
    clear_has_rule();
  }
}
inline const ::google::bigtable::admin::v2::GcRule_Union& GcRule::_internal_union_() const {
  return *rule_.union__;
}
inline ::google::bigtable::admin::v2::GcRule_Union* GcRule::release_union_() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.GcRule.union)
  if (has_union_()) {
    clear_has_rule();
      ::google::bigtable::admin::v2::GcRule_Union* temp = rule_.union__;
    rule_.union__ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::google::bigtable::admin::v2::GcRule_Union& GcRule::union_() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.GcRule.union)
  return has_union_()
      ? *rule_.union__
      : *reinterpret_cast< ::google::bigtable::admin::v2::GcRule_Union*>(&::google::bigtable::admin::v2::_GcRule_Union_default_instance_);
}
inline ::google::bigtable::admin::v2::GcRule_Union* GcRule::mutable_union_() {
  if (!has_union_()) {
    clear_rule();
    set_has_union_();
    rule_.union__ = CreateMaybeMessage< ::google::bigtable::admin::v2::GcRule_Union >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.GcRule.union)
  return rule_.union__;
}

inline bool GcRule::has_rule() const {
  return rule_case() != RULE_NOT_SET;
}
inline void GcRule::clear_has_rule() {
  _oneof_case_[0] = RULE_NOT_SET;
}
inline GcRule::RuleCase GcRule::rule_case() const {
  return GcRule::RuleCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// Snapshot

// string name = 1;
inline void Snapshot::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& Snapshot::name() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.name)
  return name_.GetNoArena();
}
inline void Snapshot::set_name(const ::std::string& value) {
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Snapshot.name)
}
#if LANG_CXX11
inline void Snapshot::set_name(::std::string&& value) {
  
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.bigtable.admin.v2.Snapshot.name)
}
#endif
inline void Snapshot::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.bigtable.admin.v2.Snapshot.name)
}
inline void Snapshot::set_name(const char* value, size_t size) {
  
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.bigtable.admin.v2.Snapshot.name)
}
inline ::std::string* Snapshot::mutable_name() {
  
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.Snapshot.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Snapshot::release_name() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.Snapshot.name)
  
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Snapshot::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    
  } else {
    
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.Snapshot.name)
}

// .google.bigtable.admin.v2.Table source_table = 2;
inline bool Snapshot::has_source_table() const {
  return this != internal_default_instance() && source_table_ != NULL;
}
inline void Snapshot::clear_source_table() {
  if (GetArenaNoVirtual() == NULL && source_table_ != NULL) {
    delete source_table_;
  }
  source_table_ = NULL;
}
inline const ::google::bigtable::admin::v2::Table& Snapshot::_internal_source_table() const {
  return *source_table_;
}
inline const ::google::bigtable::admin::v2::Table& Snapshot::source_table() const {
  const ::google::bigtable::admin::v2::Table* p = source_table_;
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.source_table)
  return p != NULL ? *p : *reinterpret_cast<const ::google::bigtable::admin::v2::Table*>(
      &::google::bigtable::admin::v2::_Table_default_instance_);
}
inline ::google::bigtable::admin::v2::Table* Snapshot::release_source_table() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.Snapshot.source_table)
  
  ::google::bigtable::admin::v2::Table* temp = source_table_;
  source_table_ = NULL;
  return temp;
}
inline ::google::bigtable::admin::v2::Table* Snapshot::mutable_source_table() {
  
  if (source_table_ == NULL) {
    auto* p = CreateMaybeMessage<::google::bigtable::admin::v2::Table>(GetArenaNoVirtual());
    source_table_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.Snapshot.source_table)
  return source_table_;
}
inline void Snapshot::set_allocated_source_table(::google::bigtable::admin::v2::Table* source_table) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete source_table_;
  }
  if (source_table) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      source_table = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, source_table, submessage_arena);
    }
    
  } else {
    
  }
  source_table_ = source_table;
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.Snapshot.source_table)
}

// int64 data_size_bytes = 3;
inline void Snapshot::clear_data_size_bytes() {
  data_size_bytes_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 Snapshot::data_size_bytes() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.data_size_bytes)
  return data_size_bytes_;
}
inline void Snapshot::set_data_size_bytes(::google::protobuf::int64 value) {
  
  data_size_bytes_ = value;
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Snapshot.data_size_bytes)
}

// .google.protobuf.Timestamp create_time = 4;
inline bool Snapshot::has_create_time() const {
  return this != internal_default_instance() && create_time_ != NULL;
}
inline const ::google::protobuf::Timestamp& Snapshot::_internal_create_time() const {
  return *create_time_;
}
inline const ::google::protobuf::Timestamp& Snapshot::create_time() const {
  const ::google::protobuf::Timestamp* p = create_time_;
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.create_time)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* Snapshot::release_create_time() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.Snapshot.create_time)
  
  ::google::protobuf::Timestamp* temp = create_time_;
  create_time_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* Snapshot::mutable_create_time() {
  
  if (create_time_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    create_time_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.Snapshot.create_time)
  return create_time_;
}
inline void Snapshot::set_allocated_create_time(::google::protobuf::Timestamp* create_time) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(create_time_);
  }
  if (create_time) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(create_time)->GetArena();
    if (message_arena != submessage_arena) {
      create_time = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, create_time, submessage_arena);
    }
    
  } else {
    
  }
  create_time_ = create_time;
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.Snapshot.create_time)
}

// .google.protobuf.Timestamp delete_time = 5;
inline bool Snapshot::has_delete_time() const {
  return this != internal_default_instance() && delete_time_ != NULL;
}
inline const ::google::protobuf::Timestamp& Snapshot::_internal_delete_time() const {
  return *delete_time_;
}
inline const ::google::protobuf::Timestamp& Snapshot::delete_time() const {
  const ::google::protobuf::Timestamp* p = delete_time_;
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.delete_time)
  return p != NULL ? *p : *reinterpret_cast<const ::google::protobuf::Timestamp*>(
      &::google::protobuf::_Timestamp_default_instance_);
}
inline ::google::protobuf::Timestamp* Snapshot::release_delete_time() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.Snapshot.delete_time)
  
  ::google::protobuf::Timestamp* temp = delete_time_;
  delete_time_ = NULL;
  return temp;
}
inline ::google::protobuf::Timestamp* Snapshot::mutable_delete_time() {
  
  if (delete_time_ == NULL) {
    auto* p = CreateMaybeMessage<::google::protobuf::Timestamp>(GetArenaNoVirtual());
    delete_time_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.Snapshot.delete_time)
  return delete_time_;
}
inline void Snapshot::set_allocated_delete_time(::google::protobuf::Timestamp* delete_time) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(delete_time_);
  }
  if (delete_time) {
    ::google::protobuf::Arena* submessage_arena =
      reinterpret_cast<::google::protobuf::MessageLite*>(delete_time)->GetArena();
    if (message_arena != submessage_arena) {
      delete_time = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, delete_time, submessage_arena);
    }
    
  } else {
    
  }
  delete_time_ = delete_time;
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.Snapshot.delete_time)
}

// .google.bigtable.admin.v2.Snapshot.State state = 6;
inline void Snapshot::clear_state() {
  state_ = 0;
}
inline ::google::bigtable::admin::v2::Snapshot_State Snapshot::state() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.state)
  return static_cast< ::google::bigtable::admin::v2::Snapshot_State >(state_);
}
inline void Snapshot::set_state(::google::bigtable::admin::v2::Snapshot_State value) {
  
  state_ = value;
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Snapshot.state)
}

// string description = 7;
inline void Snapshot::clear_description() {
  description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& Snapshot::description() const {
  // @@protoc_insertion_point(field_get:google.bigtable.admin.v2.Snapshot.description)
  return description_.GetNoArena();
}
inline void Snapshot::set_description(const ::std::string& value) {
  
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.bigtable.admin.v2.Snapshot.description)
}
#if LANG_CXX11
inline void Snapshot::set_description(::std::string&& value) {
  
  description_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.bigtable.admin.v2.Snapshot.description)
}
#endif
inline void Snapshot::set_description(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.bigtable.admin.v2.Snapshot.description)
}
inline void Snapshot::set_description(const char* value, size_t size) {
  
  description_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.bigtable.admin.v2.Snapshot.description)
}
inline ::std::string* Snapshot::mutable_description() {
  
  // @@protoc_insertion_point(field_mutable:google.bigtable.admin.v2.Snapshot.description)
  return description_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* Snapshot::release_description() {
  // @@protoc_insertion_point(field_release:google.bigtable.admin.v2.Snapshot.description)
  
  return description_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void Snapshot::set_allocated_description(::std::string* description) {
  if (description != NULL) {
    
  } else {
    
  }
  description_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), description);
  // @@protoc_insertion_point(field_set_allocated:google.bigtable.admin.v2.Snapshot.description)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace v2
}  // namespace admin
}  // namespace bigtable
}  // namespace google

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::google::bigtable::admin::v2::Table_ClusterState_ReplicationState> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::bigtable::admin::v2::Table_ClusterState_ReplicationState>() {
  return ::google::bigtable::admin::v2::Table_ClusterState_ReplicationState_descriptor();
}
template <> struct is_proto_enum< ::google::bigtable::admin::v2::Table_TimestampGranularity> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::bigtable::admin::v2::Table_TimestampGranularity>() {
  return ::google::bigtable::admin::v2::Table_TimestampGranularity_descriptor();
}
template <> struct is_proto_enum< ::google::bigtable::admin::v2::Table_View> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::bigtable::admin::v2::Table_View>() {
  return ::google::bigtable::admin::v2::Table_View_descriptor();
}
template <> struct is_proto_enum< ::google::bigtable::admin::v2::Snapshot_State> : ::std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::google::bigtable::admin::v2::Snapshot_State>() {
  return ::google::bigtable::admin::v2::Snapshot_State_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fbigtable_2fadmin_2fv2_2ftable_2eproto
