// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: keyapis/identity/v1/keyapis_identity_token_v1.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>

#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION < 4023000
#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  // PROTOBUF_VERSION

#if 4023001 < 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  // PROTOBUF_MIN_PROTOC_VERSION
#include "google/protobuf/port_undef.inc"
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/message_lite.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/api/annotations.pb.h"
#include "google/api/field_behavior.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto

PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto {
  static const ::uint32_t offsets[];
};
namespace keyapis {
namespace identity {
namespace v1 {
class PostTokenUserRequest;
struct PostTokenUserRequestDefaultTypeInternal;
extern PostTokenUserRequestDefaultTypeInternal _PostTokenUserRequest_default_instance_;
class PostTokenUserResponse;
struct PostTokenUserResponseDefaultTypeInternal;
extern PostTokenUserResponseDefaultTypeInternal _PostTokenUserResponse_default_instance_;
class PostTokenUserResponse_Error;
struct PostTokenUserResponse_ErrorDefaultTypeInternal;
extern PostTokenUserResponse_ErrorDefaultTypeInternal _PostTokenUserResponse_Error_default_instance_;
class PostTokenUserResponse_Error_TokenError;
struct PostTokenUserResponse_Error_TokenErrorDefaultTypeInternal;
extern PostTokenUserResponse_Error_TokenErrorDefaultTypeInternal _PostTokenUserResponse_Error_TokenError_default_instance_;
class Token;
struct TokenDefaultTypeInternal;
extern TokenDefaultTypeInternal _Token_default_instance_;
}  // namespace v1
}  // namespace identity
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template <>
::keyapis::identity::v1::PostTokenUserRequest* Arena::CreateMaybeMessage<::keyapis::identity::v1::PostTokenUserRequest>(Arena*);
template <>
::keyapis::identity::v1::PostTokenUserResponse* Arena::CreateMaybeMessage<::keyapis::identity::v1::PostTokenUserResponse>(Arena*);
template <>
::keyapis::identity::v1::PostTokenUserResponse_Error* Arena::CreateMaybeMessage<::keyapis::identity::v1::PostTokenUserResponse_Error>(Arena*);
template <>
::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* Arena::CreateMaybeMessage<::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError>(Arena*);
template <>
::keyapis::identity::v1::Token* Arena::CreateMaybeMessage<::keyapis::identity::v1::Token>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace keyapis {
namespace identity {
namespace v1 {

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


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

class Token final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.identity.v1.Token) */ {
 public:
  inline Token() : Token(nullptr) {}
  ~Token() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR Token(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  Token(const Token& from);
  Token(Token&& from) noexcept
    : Token() {
    *this = ::std::move(from);
  }

  inline Token& operator=(const Token& from) {
    CopyFrom(from);
    return *this;
  }
  inline Token& operator=(Token&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const Token& default_instance() {
    return *internal_default_instance();
  }
  static inline const Token* internal_default_instance() {
    return reinterpret_cast<const Token*>(
               &_Token_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(Token& a, Token& b) {
    a.Swap(&b);
  }
  inline void Swap(Token* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Token* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Token* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Token>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const Token& from);
  void MergeFrom(const Token& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(Token* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.identity.v1.Token";
  }
  protected:
  explicit Token(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  enum : int {
    kAccessTokenFieldNumber = 1,
    kExpiresInFieldNumber = 2,
  };
  // string access_token = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_access_token() ;
  const std::string& access_token() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_access_token(Arg_&& arg, Args_... args);
  std::string* mutable_access_token();
  PROTOBUF_NODISCARD std::string* release_access_token();
  void set_allocated_access_token(std::string* ptr);

  private:
  const std::string& _internal_access_token() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_access_token(
      const std::string& value);
  std::string* _internal_mutable_access_token();

  public:
  // int32 expires_in = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_expires_in() ;
  ::int32_t expires_in() const;
  void set_expires_in(::int32_t value);

  private:
  ::int32_t _internal_expires_in() const;
  void _internal_set_expires_in(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.identity.v1.Token)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr access_token_;
    ::int32_t expires_in_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

class PostTokenUserRequest final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.identity.v1.PostTokenUserRequest) */ {
 public:
  inline PostTokenUserRequest() : PostTokenUserRequest(nullptr) {}
  ~PostTokenUserRequest() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR PostTokenUserRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PostTokenUserRequest(const PostTokenUserRequest& from);
  PostTokenUserRequest(PostTokenUserRequest&& from) noexcept
    : PostTokenUserRequest() {
    *this = ::std::move(from);
  }

  inline PostTokenUserRequest& operator=(const PostTokenUserRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostTokenUserRequest& operator=(PostTokenUserRequest&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const PostTokenUserRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostTokenUserRequest* internal_default_instance() {
    return reinterpret_cast<const PostTokenUserRequest*>(
               &_PostTokenUserRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(PostTokenUserRequest& a, PostTokenUserRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PostTokenUserRequest* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PostTokenUserRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostTokenUserRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostTokenUserRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostTokenUserRequest& from);
  void MergeFrom(const PostTokenUserRequest& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(PostTokenUserRequest* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.identity.v1.PostTokenUserRequest";
  }
  protected:
  explicit PostTokenUserRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  enum : int {
    kUserIdFieldNumber = 1,
  };
  // int32 user_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_user_id() ;
  ::int32_t user_id() const;
  void set_user_id(::int32_t value);

  private:
  ::int32_t _internal_user_id() const;
  void _internal_set_user_id(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.identity.v1.PostTokenUserRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::int32_t user_id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

class PostTokenUserResponse_Error_TokenError final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.identity.v1.PostTokenUserResponse.Error.TokenError) */ {
 public:
  inline PostTokenUserResponse_Error_TokenError() : PostTokenUserResponse_Error_TokenError(nullptr) {}
  ~PostTokenUserResponse_Error_TokenError() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR PostTokenUserResponse_Error_TokenError(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PostTokenUserResponse_Error_TokenError(const PostTokenUserResponse_Error_TokenError& from);
  PostTokenUserResponse_Error_TokenError(PostTokenUserResponse_Error_TokenError&& from) noexcept
    : PostTokenUserResponse_Error_TokenError() {
    *this = ::std::move(from);
  }

  inline PostTokenUserResponse_Error_TokenError& operator=(const PostTokenUserResponse_Error_TokenError& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostTokenUserResponse_Error_TokenError& operator=(PostTokenUserResponse_Error_TokenError&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const PostTokenUserResponse_Error_TokenError& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostTokenUserResponse_Error_TokenError* internal_default_instance() {
    return reinterpret_cast<const PostTokenUserResponse_Error_TokenError*>(
               &_PostTokenUserResponse_Error_TokenError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(PostTokenUserResponse_Error_TokenError& a, PostTokenUserResponse_Error_TokenError& b) {
    a.Swap(&b);
  }
  inline void Swap(PostTokenUserResponse_Error_TokenError* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PostTokenUserResponse_Error_TokenError* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostTokenUserResponse_Error_TokenError* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostTokenUserResponse_Error_TokenError>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostTokenUserResponse_Error_TokenError& from);
  void MergeFrom(const PostTokenUserResponse_Error_TokenError& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(PostTokenUserResponse_Error_TokenError* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.identity.v1.PostTokenUserResponse.Error.TokenError";
  }
  protected:
  explicit PostTokenUserResponse_Error_TokenError(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.identity.v1.PostTokenUserResponse.Error.TokenError)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

class PostTokenUserResponse_Error final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.identity.v1.PostTokenUserResponse.Error) */ {
 public:
  inline PostTokenUserResponse_Error() : PostTokenUserResponse_Error(nullptr) {}
  ~PostTokenUserResponse_Error() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR PostTokenUserResponse_Error(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PostTokenUserResponse_Error(const PostTokenUserResponse_Error& from);
  PostTokenUserResponse_Error(PostTokenUserResponse_Error&& from) noexcept
    : PostTokenUserResponse_Error() {
    *this = ::std::move(from);
  }

  inline PostTokenUserResponse_Error& operator=(const PostTokenUserResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostTokenUserResponse_Error& operator=(PostTokenUserResponse_Error&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const PostTokenUserResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kToken = 1,
    REASON_NOT_SET = 0,
  };

  static inline const PostTokenUserResponse_Error* internal_default_instance() {
    return reinterpret_cast<const PostTokenUserResponse_Error*>(
               &_PostTokenUserResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(PostTokenUserResponse_Error& a, PostTokenUserResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(PostTokenUserResponse_Error* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PostTokenUserResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostTokenUserResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostTokenUserResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostTokenUserResponse_Error& from);
  void MergeFrom(const PostTokenUserResponse_Error& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(PostTokenUserResponse_Error* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.identity.v1.PostTokenUserResponse.Error";
  }
  protected:
  explicit PostTokenUserResponse_Error(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef PostTokenUserResponse_Error_TokenError TokenError;

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

  enum : int {
    kTokenFieldNumber = 1,
  };
  // .keyapis.identity.v1.PostTokenUserResponse.Error.TokenError token = 1;
  bool has_token() const;
  private:
  bool _internal_has_token() const;

  public:
  void clear_token() ;
  const ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError& token() const;
  PROTOBUF_NODISCARD ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* release_token();
  ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* mutable_token();
  void set_allocated_token(::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* token);
  private:
  const ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError& _internal_token() const;
  ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* _internal_mutable_token();
  public:
  void unsafe_arena_set_allocated_token(
      ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* token);
  ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* unsafe_arena_release_token();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.identity.v1.PostTokenUserResponse.Error)
 private:
  class _Internal;
  void set_has_token();

  inline bool has_reason() const;
  inline void clear_has_reason();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union ReasonUnion {
      constexpr ReasonUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* token_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto;
};// -------------------------------------------------------------------

class PostTokenUserResponse final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:keyapis.identity.v1.PostTokenUserResponse) */ {
 public:
  inline PostTokenUserResponse() : PostTokenUserResponse(nullptr) {}
  ~PostTokenUserResponse() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR PostTokenUserResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  PostTokenUserResponse(const PostTokenUserResponse& from);
  PostTokenUserResponse(PostTokenUserResponse&& from) noexcept
    : PostTokenUserResponse() {
    *this = ::std::move(from);
  }

  inline PostTokenUserResponse& operator=(const PostTokenUserResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostTokenUserResponse& operator=(PostTokenUserResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const PostTokenUserResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const PostTokenUserResponse* internal_default_instance() {
    return reinterpret_cast<const PostTokenUserResponse*>(
               &_PostTokenUserResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(PostTokenUserResponse& a, PostTokenUserResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PostTokenUserResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PostTokenUserResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostTokenUserResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostTokenUserResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostTokenUserResponse& from);
  void MergeFrom(const PostTokenUserResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(PostTokenUserResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "keyapis.identity.v1.PostTokenUserResponse";
  }
  protected:
  explicit PostTokenUserResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  public:

  std::string GetTypeName() const final;

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

  typedef PostTokenUserResponse_Error Error;

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

  enum : int {
    kDataFieldNumber = 1,
    kErrorFieldNumber = 2,
  };
  // .keyapis.identity.v1.Token data = 1;
  bool has_data() const;
  private:
  bool _internal_has_data() const;

  public:
  void clear_data() ;
  const ::keyapis::identity::v1::Token& data() const;
  PROTOBUF_NODISCARD ::keyapis::identity::v1::Token* release_data();
  ::keyapis::identity::v1::Token* mutable_data();
  void set_allocated_data(::keyapis::identity::v1::Token* data);
  private:
  const ::keyapis::identity::v1::Token& _internal_data() const;
  ::keyapis::identity::v1::Token* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::keyapis::identity::v1::Token* data);
  ::keyapis::identity::v1::Token* unsafe_arena_release_data();
  // .keyapis.identity.v1.PostTokenUserResponse.Error error = 2;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

  public:
  void clear_error() ;
  const ::keyapis::identity::v1::PostTokenUserResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::identity::v1::PostTokenUserResponse_Error* release_error();
  ::keyapis::identity::v1::PostTokenUserResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::identity::v1::PostTokenUserResponse_Error* error);
  private:
  const ::keyapis::identity::v1::PostTokenUserResponse_Error& _internal_error() const;
  ::keyapis::identity::v1::PostTokenUserResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::identity::v1::PostTokenUserResponse_Error* error);
  ::keyapis::identity::v1::PostTokenUserResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.identity.v1.PostTokenUserResponse)
 private:
  class _Internal;
  void set_has_data();
  void set_has_error();

  inline bool has_type() const;
  inline void clear_has_type();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    union TypeUnion {
      constexpr TypeUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::identity::v1::Token* data_;
      ::keyapis::identity::v1::PostTokenUserResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto;
};

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




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


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

// Token

// string access_token = 1 [(.google.api.field_behavior) = REQUIRED];
inline void Token::clear_access_token() {
  _impl_.access_token_.ClearToEmpty();
}
inline const std::string& Token::access_token() const {
  // @@protoc_insertion_point(field_get:keyapis.identity.v1.Token.access_token)
  return _internal_access_token();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Token::set_access_token(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.access_token_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.identity.v1.Token.access_token)
}
inline std::string* Token::mutable_access_token() {
  std::string* _s = _internal_mutable_access_token();
  // @@protoc_insertion_point(field_mutable:keyapis.identity.v1.Token.access_token)
  return _s;
}
inline const std::string& Token::_internal_access_token() const {
  return _impl_.access_token_.Get();
}
inline void Token::_internal_set_access_token(const std::string& value) {
  ;


  _impl_.access_token_.Set(value, GetArenaForAllocation());
}
inline std::string* Token::_internal_mutable_access_token() {
  ;
  return _impl_.access_token_.Mutable( GetArenaForAllocation());
}
inline std::string* Token::release_access_token() {
  // @@protoc_insertion_point(field_release:keyapis.identity.v1.Token.access_token)
  return _impl_.access_token_.Release();
}
inline void Token::set_allocated_access_token(std::string* value) {
  _impl_.access_token_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.access_token_.IsDefault()) {
          _impl_.access_token_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.identity.v1.Token.access_token)
}

// int32 expires_in = 2 [(.google.api.field_behavior) = REQUIRED];
inline void Token::clear_expires_in() {
  _impl_.expires_in_ = 0;
}
inline ::int32_t Token::expires_in() const {
  // @@protoc_insertion_point(field_get:keyapis.identity.v1.Token.expires_in)
  return _internal_expires_in();
}
inline void Token::set_expires_in(::int32_t value) {
  _internal_set_expires_in(value);
  // @@protoc_insertion_point(field_set:keyapis.identity.v1.Token.expires_in)
}
inline ::int32_t Token::_internal_expires_in() const {
  return _impl_.expires_in_;
}
inline void Token::_internal_set_expires_in(::int32_t value) {
  ;
  _impl_.expires_in_ = value;
}

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

// PostTokenUserRequest

// int32 user_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void PostTokenUserRequest::clear_user_id() {
  _impl_.user_id_ = 0;
}
inline ::int32_t PostTokenUserRequest::user_id() const {
  // @@protoc_insertion_point(field_get:keyapis.identity.v1.PostTokenUserRequest.user_id)
  return _internal_user_id();
}
inline void PostTokenUserRequest::set_user_id(::int32_t value) {
  _internal_set_user_id(value);
  // @@protoc_insertion_point(field_set:keyapis.identity.v1.PostTokenUserRequest.user_id)
}
inline ::int32_t PostTokenUserRequest::_internal_user_id() const {
  return _impl_.user_id_;
}
inline void PostTokenUserRequest::_internal_set_user_id(::int32_t value) {
  ;
  _impl_.user_id_ = value;
}

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

// PostTokenUserResponse_Error_TokenError

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

// PostTokenUserResponse_Error

// .keyapis.identity.v1.PostTokenUserResponse.Error.TokenError token = 1;
inline bool PostTokenUserResponse_Error::has_token() const {
  return reason_case() == kToken;
}
inline bool PostTokenUserResponse_Error::_internal_has_token() const {
  return reason_case() == kToken;
}
inline void PostTokenUserResponse_Error::set_has_token() {
  _impl_._oneof_case_[0] = kToken;
}
inline void PostTokenUserResponse_Error::clear_token() {
  if (reason_case() == kToken) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.token_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* PostTokenUserResponse_Error::release_token() {
  // @@protoc_insertion_point(field_release:keyapis.identity.v1.PostTokenUserResponse.Error.token)
  if (reason_case() == kToken) {
    clear_has_reason();
    ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* temp = _impl_.reason_.token_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.token_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError& PostTokenUserResponse_Error::_internal_token() const {
  return reason_case() == kToken
      ? *_impl_.reason_.token_
      : reinterpret_cast<::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError&>(::keyapis::identity::v1::_PostTokenUserResponse_Error_TokenError_default_instance_);
}
inline const ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError& PostTokenUserResponse_Error::token() const {
  // @@protoc_insertion_point(field_get:keyapis.identity.v1.PostTokenUserResponse.Error.token)
  return _internal_token();
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* PostTokenUserResponse_Error::unsafe_arena_release_token() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.identity.v1.PostTokenUserResponse.Error.token)
  if (reason_case() == kToken) {
    clear_has_reason();
    ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* temp = _impl_.reason_.token_;
    _impl_.reason_.token_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostTokenUserResponse_Error::unsafe_arena_set_allocated_token(::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* token) {
  clear_reason();
  if (token) {
    set_has_token();
    _impl_.reason_.token_ = token;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.identity.v1.PostTokenUserResponse.Error.token)
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* PostTokenUserResponse_Error::_internal_mutable_token() {
  if (reason_case() != kToken) {
    clear_reason();
    set_has_token();
    _impl_.reason_.token_ = CreateMaybeMessage< ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError >(GetArenaForAllocation());
  }
  return _impl_.reason_.token_;
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* PostTokenUserResponse_Error::mutable_token() {
  ::keyapis::identity::v1::PostTokenUserResponse_Error_TokenError* _msg = _internal_mutable_token();
  // @@protoc_insertion_point(field_mutable:keyapis.identity.v1.PostTokenUserResponse.Error.token)
  return _msg;
}

inline bool PostTokenUserResponse_Error::has_reason() const {
  return reason_case() != REASON_NOT_SET;
}
inline void PostTokenUserResponse_Error::clear_has_reason() {
  _impl_._oneof_case_[0] = REASON_NOT_SET;
}
inline PostTokenUserResponse_Error::ReasonCase PostTokenUserResponse_Error::reason_case() const {
  return PostTokenUserResponse_Error::ReasonCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// PostTokenUserResponse

// .keyapis.identity.v1.Token data = 1;
inline bool PostTokenUserResponse::has_data() const {
  return type_case() == kData;
}
inline bool PostTokenUserResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void PostTokenUserResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void PostTokenUserResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::identity::v1::Token* PostTokenUserResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.identity.v1.PostTokenUserResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::identity::v1::Token* temp = _impl_.type_.data_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::identity::v1::Token& PostTokenUserResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::identity::v1::Token&>(::keyapis::identity::v1::_Token_default_instance_);
}
inline const ::keyapis::identity::v1::Token& PostTokenUserResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.identity.v1.PostTokenUserResponse.data)
  return _internal_data();
}
inline ::keyapis::identity::v1::Token* PostTokenUserResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.identity.v1.PostTokenUserResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::identity::v1::Token* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostTokenUserResponse::unsafe_arena_set_allocated_data(::keyapis::identity::v1::Token* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.identity.v1.PostTokenUserResponse.data)
}
inline ::keyapis::identity::v1::Token* PostTokenUserResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::identity::v1::Token >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::identity::v1::Token* PostTokenUserResponse::mutable_data() {
  ::keyapis::identity::v1::Token* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.identity.v1.PostTokenUserResponse.data)
  return _msg;
}

// .keyapis.identity.v1.PostTokenUserResponse.Error error = 2;
inline bool PostTokenUserResponse::has_error() const {
  return type_case() == kError;
}
inline bool PostTokenUserResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void PostTokenUserResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void PostTokenUserResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error* PostTokenUserResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.identity.v1.PostTokenUserResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::identity::v1::PostTokenUserResponse_Error* temp = _impl_.type_.error_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::identity::v1::PostTokenUserResponse_Error& PostTokenUserResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::identity::v1::PostTokenUserResponse_Error&>(::keyapis::identity::v1::_PostTokenUserResponse_Error_default_instance_);
}
inline const ::keyapis::identity::v1::PostTokenUserResponse_Error& PostTokenUserResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.identity.v1.PostTokenUserResponse.error)
  return _internal_error();
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error* PostTokenUserResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.identity.v1.PostTokenUserResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::identity::v1::PostTokenUserResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostTokenUserResponse::unsafe_arena_set_allocated_error(::keyapis::identity::v1::PostTokenUserResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.identity.v1.PostTokenUserResponse.error)
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error* PostTokenUserResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::identity::v1::PostTokenUserResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::identity::v1::PostTokenUserResponse_Error* PostTokenUserResponse::mutable_error() {
  ::keyapis::identity::v1::PostTokenUserResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.identity.v1.PostTokenUserResponse.error)
  return _msg;
}

inline bool PostTokenUserResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void PostTokenUserResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline PostTokenUserResponse::TypeCase PostTokenUserResponse::type_case() const {
  return PostTokenUserResponse::TypeCase(_impl_._oneof_case_[0]);
}
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace identity
}  // namespace keyapis


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_keyapis_2fidentity_2fv1_2fkeyapis_5fidentity_5ftoken_5fv1_2eproto_2epb_2eh
