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

#ifndef GOOGLE_PROTOBUF_INCLUDED_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_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/protobuf/map.h"  // IWYU pragma: export
#include "google/protobuf/map_entry_lite.h"
#include "google/protobuf/map_field_lite.h"
#include "google/protobuf/generated_enum_util.h"
#include "google/api/annotations.pb.h"
#include "google/api/field_behavior.pb.h"
#include "google/protobuf/wrappers.pb.h"
#include "google/protobuf/timestamp.pb.h"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_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_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto {
  static const ::uint32_t offsets[];
};
namespace keyapis {
namespace access_management {
namespace v1 {
class Claim;
struct ClaimDefaultTypeInternal;
extern ClaimDefaultTypeInternal _Claim_default_instance_;
class DeleteGroupRequest;
struct DeleteGroupRequestDefaultTypeInternal;
extern DeleteGroupRequestDefaultTypeInternal _DeleteGroupRequest_default_instance_;
class DeleteGroupResponse;
struct DeleteGroupResponseDefaultTypeInternal;
extern DeleteGroupResponseDefaultTypeInternal _DeleteGroupResponse_default_instance_;
class GetGroupClaimCountRequest;
struct GetGroupClaimCountRequestDefaultTypeInternal;
extern GetGroupClaimCountRequestDefaultTypeInternal _GetGroupClaimCountRequest_default_instance_;
class GetGroupClaimCountResponse;
struct GetGroupClaimCountResponseDefaultTypeInternal;
extern GetGroupClaimCountResponseDefaultTypeInternal _GetGroupClaimCountResponse_default_instance_;
class GetGroupClaimExistRequest;
struct GetGroupClaimExistRequestDefaultTypeInternal;
extern GetGroupClaimExistRequestDefaultTypeInternal _GetGroupClaimExistRequest_default_instance_;
class GetGroupClaimExistResponse;
struct GetGroupClaimExistResponseDefaultTypeInternal;
extern GetGroupClaimExistResponseDefaultTypeInternal _GetGroupClaimExistResponse_default_instance_;
class GetGroupClaimExistResponse_Error;
struct GetGroupClaimExistResponse_ErrorDefaultTypeInternal;
extern GetGroupClaimExistResponse_ErrorDefaultTypeInternal _GetGroupClaimExistResponse_Error_default_instance_;
class GetGroupClaimExistResponse_Error_ClaimFilterEmptyError;
struct GetGroupClaimExistResponse_Error_ClaimFilterEmptyErrorDefaultTypeInternal;
extern GetGroupClaimExistResponse_Error_ClaimFilterEmptyErrorDefaultTypeInternal _GetGroupClaimExistResponse_Error_ClaimFilterEmptyError_default_instance_;
class GetGroupClaimListRequest;
struct GetGroupClaimListRequestDefaultTypeInternal;
extern GetGroupClaimListRequestDefaultTypeInternal _GetGroupClaimListRequest_default_instance_;
class GetGroupClaimListResponse;
struct GetGroupClaimListResponseDefaultTypeInternal;
extern GetGroupClaimListResponseDefaultTypeInternal _GetGroupClaimListResponse_default_instance_;
class GetGroupCountRequest;
struct GetGroupCountRequestDefaultTypeInternal;
extern GetGroupCountRequestDefaultTypeInternal _GetGroupCountRequest_default_instance_;
class GetGroupCountResponse;
struct GetGroupCountResponseDefaultTypeInternal;
extern GetGroupCountResponseDefaultTypeInternal _GetGroupCountResponse_default_instance_;
class GetGroupCountResponse_Error;
struct GetGroupCountResponse_ErrorDefaultTypeInternal;
extern GetGroupCountResponse_ErrorDefaultTypeInternal _GetGroupCountResponse_Error_default_instance_;
class GetGroupListRequest;
struct GetGroupListRequestDefaultTypeInternal;
extern GetGroupListRequestDefaultTypeInternal _GetGroupListRequest_default_instance_;
class GetGroupListResponse;
struct GetGroupListResponseDefaultTypeInternal;
extern GetGroupListResponseDefaultTypeInternal _GetGroupListResponse_default_instance_;
class GetGroupListResponse_Error;
struct GetGroupListResponse_ErrorDefaultTypeInternal;
extern GetGroupListResponse_ErrorDefaultTypeInternal _GetGroupListResponse_Error_default_instance_;
class GetGroupRequest;
struct GetGroupRequestDefaultTypeInternal;
extern GetGroupRequestDefaultTypeInternal _GetGroupRequest_default_instance_;
class GetGroupResponse;
struct GetGroupResponseDefaultTypeInternal;
extern GetGroupResponseDefaultTypeInternal _GetGroupResponse_default_instance_;
class GetGroupResponse_Error;
struct GetGroupResponse_ErrorDefaultTypeInternal;
extern GetGroupResponse_ErrorDefaultTypeInternal _GetGroupResponse_Error_default_instance_;
class GetGroupUserCountRequest;
struct GetGroupUserCountRequestDefaultTypeInternal;
extern GetGroupUserCountRequestDefaultTypeInternal _GetGroupUserCountRequest_default_instance_;
class GetGroupUserCountResponse;
struct GetGroupUserCountResponseDefaultTypeInternal;
extern GetGroupUserCountResponseDefaultTypeInternal _GetGroupUserCountResponse_default_instance_;
class GetGroupUserListRequest;
struct GetGroupUserListRequestDefaultTypeInternal;
extern GetGroupUserListRequestDefaultTypeInternal _GetGroupUserListRequest_default_instance_;
class GetGroupUserListResponse;
struct GetGroupUserListResponseDefaultTypeInternal;
extern GetGroupUserListResponseDefaultTypeInternal _GetGroupUserListResponse_default_instance_;
class Group;
struct GroupDefaultTypeInternal;
extern GroupDefaultTypeInternal _Group_default_instance_;
class GroupClaimFilter;
struct GroupClaimFilterDefaultTypeInternal;
extern GroupClaimFilterDefaultTypeInternal _GroupClaimFilter_default_instance_;
class GroupClaimFilter_ClaimsEntry_DoNotUse;
struct GroupClaimFilter_ClaimsEntry_DoNotUseDefaultTypeInternal;
extern GroupClaimFilter_ClaimsEntry_DoNotUseDefaultTypeInternal _GroupClaimFilter_ClaimsEntry_DoNotUse_default_instance_;
class GroupClaimFilter_UserData;
struct GroupClaimFilter_UserDataDefaultTypeInternal;
extern GroupClaimFilter_UserDataDefaultTypeInternal _GroupClaimFilter_UserData_default_instance_;
class GroupClaimFilter_UserData_ClaimsEntry_DoNotUse;
struct GroupClaimFilter_UserData_ClaimsEntry_DoNotUseDefaultTypeInternal;
extern GroupClaimFilter_UserData_ClaimsEntry_DoNotUseDefaultTypeInternal _GroupClaimFilter_UserData_ClaimsEntry_DoNotUse_default_instance_;
class GroupClaimPaging;
struct GroupClaimPagingDefaultTypeInternal;
extern GroupClaimPagingDefaultTypeInternal _GroupClaimPaging_default_instance_;
class GroupFilter;
struct GroupFilterDefaultTypeInternal;
extern GroupFilterDefaultTypeInternal _GroupFilter_default_instance_;
class GroupFilter_ClaimsEntry_DoNotUse;
struct GroupFilter_ClaimsEntry_DoNotUseDefaultTypeInternal;
extern GroupFilter_ClaimsEntry_DoNotUseDefaultTypeInternal _GroupFilter_ClaimsEntry_DoNotUse_default_instance_;
class GroupFilter_RequirementsEntry_DoNotUse;
struct GroupFilter_RequirementsEntry_DoNotUseDefaultTypeInternal;
extern GroupFilter_RequirementsEntry_DoNotUseDefaultTypeInternal _GroupFilter_RequirementsEntry_DoNotUse_default_instance_;
class GroupPaging;
struct GroupPagingDefaultTypeInternal;
extern GroupPagingDefaultTypeInternal _GroupPaging_default_instance_;
class GroupTemplateNotFoundError;
struct GroupTemplateNotFoundErrorDefaultTypeInternal;
extern GroupTemplateNotFoundErrorDefaultTypeInternal _GroupTemplateNotFoundError_default_instance_;
class GroupUserFilter;
struct GroupUserFilterDefaultTypeInternal;
extern GroupUserFilterDefaultTypeInternal _GroupUserFilter_default_instance_;
class GroupUserPaging;
struct GroupUserPagingDefaultTypeInternal;
extern GroupUserPagingDefaultTypeInternal _GroupUserPaging_default_instance_;
class PostGroupByTemplateRequest;
struct PostGroupByTemplateRequestDefaultTypeInternal;
extern PostGroupByTemplateRequestDefaultTypeInternal _PostGroupByTemplateRequest_default_instance_;
class PostGroupByTemplateResponse;
struct PostGroupByTemplateResponseDefaultTypeInternal;
extern PostGroupByTemplateResponseDefaultTypeInternal _PostGroupByTemplateResponse_default_instance_;
class PostGroupByTemplateResponse_Error;
struct PostGroupByTemplateResponse_ErrorDefaultTypeInternal;
extern PostGroupByTemplateResponse_ErrorDefaultTypeInternal _PostGroupByTemplateResponse_Error_default_instance_;
class PostGroupRequest;
struct PostGroupRequestDefaultTypeInternal;
extern PostGroupRequestDefaultTypeInternal _PostGroupRequest_default_instance_;
class PostGroupResponse;
struct PostGroupResponseDefaultTypeInternal;
extern PostGroupResponseDefaultTypeInternal _PostGroupResponse_default_instance_;
class PostGroupResponse_Error;
struct PostGroupResponse_ErrorDefaultTypeInternal;
extern PostGroupResponse_ErrorDefaultTypeInternal _PostGroupResponse_Error_default_instance_;
class PutGroupApiKeyCreateRequest;
struct PutGroupApiKeyCreateRequestDefaultTypeInternal;
extern PutGroupApiKeyCreateRequestDefaultTypeInternal _PutGroupApiKeyCreateRequest_default_instance_;
class PutGroupApiKeyCreateResponse;
struct PutGroupApiKeyCreateResponseDefaultTypeInternal;
extern PutGroupApiKeyCreateResponseDefaultTypeInternal _PutGroupApiKeyCreateResponse_default_instance_;
class PutGroupApiKeyDeleteRequest;
struct PutGroupApiKeyDeleteRequestDefaultTypeInternal;
extern PutGroupApiKeyDeleteRequestDefaultTypeInternal _PutGroupApiKeyDeleteRequest_default_instance_;
class PutGroupApiKeyDeleteResponse;
struct PutGroupApiKeyDeleteResponseDefaultTypeInternal;
extern PutGroupApiKeyDeleteResponseDefaultTypeInternal _PutGroupApiKeyDeleteResponse_default_instance_;
class PutGroupUserAttachRequest;
struct PutGroupUserAttachRequestDefaultTypeInternal;
extern PutGroupUserAttachRequestDefaultTypeInternal _PutGroupUserAttachRequest_default_instance_;
class PutGroupUserAttachResponse;
struct PutGroupUserAttachResponseDefaultTypeInternal;
extern PutGroupUserAttachResponseDefaultTypeInternal _PutGroupUserAttachResponse_default_instance_;
class PutGroupUserDetachRequest;
struct PutGroupUserDetachRequestDefaultTypeInternal;
extern PutGroupUserDetachRequestDefaultTypeInternal _PutGroupUserDetachRequest_default_instance_;
class PutGroupUserDetachResponse;
struct PutGroupUserDetachResponseDefaultTypeInternal;
extern PutGroupUserDetachResponseDefaultTypeInternal _PutGroupUserDetachResponse_default_instance_;
class UserGroup;
struct UserGroupDefaultTypeInternal;
extern UserGroupDefaultTypeInternal _UserGroup_default_instance_;
class ValidationError;
struct ValidationErrorDefaultTypeInternal;
extern ValidationErrorDefaultTypeInternal _ValidationError_default_instance_;
}  // namespace v1
}  // namespace access_management
}  // namespace keyapis
PROTOBUF_NAMESPACE_OPEN
template <>
::keyapis::access_management::v1::Claim* Arena::CreateMaybeMessage<::keyapis::access_management::v1::Claim>(Arena*);
template <>
::keyapis::access_management::v1::DeleteGroupRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::DeleteGroupRequest>(Arena*);
template <>
::keyapis::access_management::v1::DeleteGroupResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::DeleteGroupResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimCountRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimCountRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimCountResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimCountResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimExistRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimExistRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimExistResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimExistResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimExistResponse_Error>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimListRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimListRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupClaimListResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupClaimListResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupCountRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupCountRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupCountResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupCountResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupCountResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupCountResponse_Error>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupListRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupListRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupListResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupListResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupListResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupListResponse_Error>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupResponse_Error>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupUserCountRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupUserCountRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupUserCountResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupUserCountResponse>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupUserListRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupUserListRequest>(Arena*);
template <>
::keyapis::access_management::v1::GetGroupUserListResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GetGroupUserListResponse>(Arena*);
template <>
::keyapis::access_management::v1::Group* Arena::CreateMaybeMessage<::keyapis::access_management::v1::Group>(Arena*);
template <>
::keyapis::access_management::v1::GroupClaimFilter* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter>(Arena*);
template <>
::keyapis::access_management::v1::GroupClaimFilter_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter_ClaimsEntry_DoNotUse>(Arena*);
template <>
::keyapis::access_management::v1::GroupClaimFilter_UserData* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter_UserData>(Arena*);
template <>
::keyapis::access_management::v1::GroupClaimFilter_UserData_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter_UserData_ClaimsEntry_DoNotUse>(Arena*);
template <>
::keyapis::access_management::v1::GroupClaimPaging* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimPaging>(Arena*);
template <>
::keyapis::access_management::v1::GroupFilter* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupFilter>(Arena*);
template <>
::keyapis::access_management::v1::GroupFilter_ClaimsEntry_DoNotUse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupFilter_ClaimsEntry_DoNotUse>(Arena*);
template <>
::keyapis::access_management::v1::GroupFilter_RequirementsEntry_DoNotUse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupFilter_RequirementsEntry_DoNotUse>(Arena*);
template <>
::keyapis::access_management::v1::GroupPaging* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupPaging>(Arena*);
template <>
::keyapis::access_management::v1::GroupTemplateNotFoundError* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupTemplateNotFoundError>(Arena*);
template <>
::keyapis::access_management::v1::GroupUserFilter* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupUserFilter>(Arena*);
template <>
::keyapis::access_management::v1::GroupUserPaging* Arena::CreateMaybeMessage<::keyapis::access_management::v1::GroupUserPaging>(Arena*);
template <>
::keyapis::access_management::v1::PostGroupByTemplateRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PostGroupByTemplateRequest>(Arena*);
template <>
::keyapis::access_management::v1::PostGroupByTemplateResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PostGroupByTemplateResponse>(Arena*);
template <>
::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PostGroupByTemplateResponse_Error>(Arena*);
template <>
::keyapis::access_management::v1::PostGroupRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PostGroupRequest>(Arena*);
template <>
::keyapis::access_management::v1::PostGroupResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PostGroupResponse>(Arena*);
template <>
::keyapis::access_management::v1::PostGroupResponse_Error* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PostGroupResponse_Error>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupApiKeyCreateRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupApiKeyCreateRequest>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupApiKeyCreateResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupApiKeyCreateResponse>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupApiKeyDeleteRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupApiKeyDeleteRequest>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupApiKeyDeleteResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupApiKeyDeleteResponse>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupUserAttachRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupUserAttachRequest>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupUserAttachResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupUserAttachResponse>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupUserDetachRequest* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupUserDetachRequest>(Arena*);
template <>
::keyapis::access_management::v1::PutGroupUserDetachResponse* Arena::CreateMaybeMessage<::keyapis::access_management::v1::PutGroupUserDetachResponse>(Arena*);
template <>
::keyapis::access_management::v1::UserGroup* Arena::CreateMaybeMessage<::keyapis::access_management::v1::UserGroup>(Arena*);
template <>
::keyapis::access_management::v1::ValidationError* Arena::CreateMaybeMessage<::keyapis::access_management::v1::ValidationError>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace keyapis {
namespace access_management {
namespace v1 {
enum GroupPaging_OrderByType : int {
  GroupPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN = 0,
  GroupPaging_OrderByType_ID = 1,
  GroupPaging_OrderByType_TITLE = 2,
  GroupPaging_OrderByType_GroupPaging_OrderByType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  GroupPaging_OrderByType_GroupPaging_OrderByType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool GroupPaging_OrderByType_IsValid(int value);
constexpr GroupPaging_OrderByType GroupPaging_OrderByType_OrderByType_MIN = static_cast<GroupPaging_OrderByType>(0);
constexpr GroupPaging_OrderByType GroupPaging_OrderByType_OrderByType_MAX = static_cast<GroupPaging_OrderByType>(2);
constexpr int GroupPaging_OrderByType_OrderByType_ARRAYSIZE = 2 + 1;
const std::string& GroupPaging_OrderByType_Name(GroupPaging_OrderByType value);
template <typename T>
const std::string& GroupPaging_OrderByType_Name(T value) {
  static_assert(std::is_same<T, GroupPaging_OrderByType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to OrderByType_Name().");
  return GroupPaging_OrderByType_Name(static_cast<GroupPaging_OrderByType>(value));
}
const std::string& GroupPaging_OrderByType_Name(GroupPaging_OrderByType value);
bool GroupPaging_OrderByType_Parse(absl::string_view name, GroupPaging_OrderByType* value);
enum GroupPaging_DirectionType : int {
  GroupPaging_DirectionType_DIRECTION_TYPE_UNKNOWN = 0,
  GroupPaging_DirectionType_DESC = 1,
  GroupPaging_DirectionType_ASC = 2,
  GroupPaging_DirectionType_GroupPaging_DirectionType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  GroupPaging_DirectionType_GroupPaging_DirectionType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool GroupPaging_DirectionType_IsValid(int value);
constexpr GroupPaging_DirectionType GroupPaging_DirectionType_DirectionType_MIN = static_cast<GroupPaging_DirectionType>(0);
constexpr GroupPaging_DirectionType GroupPaging_DirectionType_DirectionType_MAX = static_cast<GroupPaging_DirectionType>(2);
constexpr int GroupPaging_DirectionType_DirectionType_ARRAYSIZE = 2 + 1;
const std::string& GroupPaging_DirectionType_Name(GroupPaging_DirectionType value);
template <typename T>
const std::string& GroupPaging_DirectionType_Name(T value) {
  static_assert(std::is_same<T, GroupPaging_DirectionType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to DirectionType_Name().");
  return GroupPaging_DirectionType_Name(static_cast<GroupPaging_DirectionType>(value));
}
const std::string& GroupPaging_DirectionType_Name(GroupPaging_DirectionType value);
bool GroupPaging_DirectionType_Parse(absl::string_view name, GroupPaging_DirectionType* value);
enum GroupUserPaging_OrderByType : int {
  GroupUserPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN = 0,
  GroupUserPaging_OrderByType_GROUP_ID = 1,
  GroupUserPaging_OrderByType_USER_ID = 2,
  GroupUserPaging_OrderByType_GroupUserPaging_OrderByType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  GroupUserPaging_OrderByType_GroupUserPaging_OrderByType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool GroupUserPaging_OrderByType_IsValid(int value);
constexpr GroupUserPaging_OrderByType GroupUserPaging_OrderByType_OrderByType_MIN = static_cast<GroupUserPaging_OrderByType>(0);
constexpr GroupUserPaging_OrderByType GroupUserPaging_OrderByType_OrderByType_MAX = static_cast<GroupUserPaging_OrderByType>(2);
constexpr int GroupUserPaging_OrderByType_OrderByType_ARRAYSIZE = 2 + 1;
const std::string& GroupUserPaging_OrderByType_Name(GroupUserPaging_OrderByType value);
template <typename T>
const std::string& GroupUserPaging_OrderByType_Name(T value) {
  static_assert(std::is_same<T, GroupUserPaging_OrderByType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to OrderByType_Name().");
  return GroupUserPaging_OrderByType_Name(static_cast<GroupUserPaging_OrderByType>(value));
}
const std::string& GroupUserPaging_OrderByType_Name(GroupUserPaging_OrderByType value);
bool GroupUserPaging_OrderByType_Parse(absl::string_view name, GroupUserPaging_OrderByType* value);
enum GroupUserPaging_DirectionType : int {
  GroupUserPaging_DirectionType_DIRECTION_TYPE_UNKNOWN = 0,
  GroupUserPaging_DirectionType_DESC = 1,
  GroupUserPaging_DirectionType_ASC = 2,
  GroupUserPaging_DirectionType_GroupUserPaging_DirectionType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  GroupUserPaging_DirectionType_GroupUserPaging_DirectionType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool GroupUserPaging_DirectionType_IsValid(int value);
constexpr GroupUserPaging_DirectionType GroupUserPaging_DirectionType_DirectionType_MIN = static_cast<GroupUserPaging_DirectionType>(0);
constexpr GroupUserPaging_DirectionType GroupUserPaging_DirectionType_DirectionType_MAX = static_cast<GroupUserPaging_DirectionType>(2);
constexpr int GroupUserPaging_DirectionType_DirectionType_ARRAYSIZE = 2 + 1;
const std::string& GroupUserPaging_DirectionType_Name(GroupUserPaging_DirectionType value);
template <typename T>
const std::string& GroupUserPaging_DirectionType_Name(T value) {
  static_assert(std::is_same<T, GroupUserPaging_DirectionType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to DirectionType_Name().");
  return GroupUserPaging_DirectionType_Name(static_cast<GroupUserPaging_DirectionType>(value));
}
const std::string& GroupUserPaging_DirectionType_Name(GroupUserPaging_DirectionType value);
bool GroupUserPaging_DirectionType_Parse(absl::string_view name, GroupUserPaging_DirectionType* value);
enum GroupClaimPaging_OrderByType : int {
  GroupClaimPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN = 0,
  GroupClaimPaging_OrderByType_KEY = 1,
  GroupClaimPaging_OrderByType_VALUE = 2,
  GroupClaimPaging_OrderByType_GroupClaimPaging_OrderByType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  GroupClaimPaging_OrderByType_GroupClaimPaging_OrderByType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool GroupClaimPaging_OrderByType_IsValid(int value);
constexpr GroupClaimPaging_OrderByType GroupClaimPaging_OrderByType_OrderByType_MIN = static_cast<GroupClaimPaging_OrderByType>(0);
constexpr GroupClaimPaging_OrderByType GroupClaimPaging_OrderByType_OrderByType_MAX = static_cast<GroupClaimPaging_OrderByType>(2);
constexpr int GroupClaimPaging_OrderByType_OrderByType_ARRAYSIZE = 2 + 1;
const std::string& GroupClaimPaging_OrderByType_Name(GroupClaimPaging_OrderByType value);
template <typename T>
const std::string& GroupClaimPaging_OrderByType_Name(T value) {
  static_assert(std::is_same<T, GroupClaimPaging_OrderByType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to OrderByType_Name().");
  return GroupClaimPaging_OrderByType_Name(static_cast<GroupClaimPaging_OrderByType>(value));
}
const std::string& GroupClaimPaging_OrderByType_Name(GroupClaimPaging_OrderByType value);
bool GroupClaimPaging_OrderByType_Parse(absl::string_view name, GroupClaimPaging_OrderByType* value);
enum GroupClaimPaging_DirectionType : int {
  GroupClaimPaging_DirectionType_DIRECTION_TYPE_UNKNOWN = 0,
  GroupClaimPaging_DirectionType_DESC = 1,
  GroupClaimPaging_DirectionType_ASC = 2,
  GroupClaimPaging_DirectionType_GroupClaimPaging_DirectionType_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  GroupClaimPaging_DirectionType_GroupClaimPaging_DirectionType_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

bool GroupClaimPaging_DirectionType_IsValid(int value);
constexpr GroupClaimPaging_DirectionType GroupClaimPaging_DirectionType_DirectionType_MIN = static_cast<GroupClaimPaging_DirectionType>(0);
constexpr GroupClaimPaging_DirectionType GroupClaimPaging_DirectionType_DirectionType_MAX = static_cast<GroupClaimPaging_DirectionType>(2);
constexpr int GroupClaimPaging_DirectionType_DirectionType_ARRAYSIZE = 2 + 1;
const std::string& GroupClaimPaging_DirectionType_Name(GroupClaimPaging_DirectionType value);
template <typename T>
const std::string& GroupClaimPaging_DirectionType_Name(T value) {
  static_assert(std::is_same<T, GroupClaimPaging_DirectionType>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to DirectionType_Name().");
  return GroupClaimPaging_DirectionType_Name(static_cast<GroupClaimPaging_DirectionType>(value));
}
const std::string& GroupClaimPaging_DirectionType_Name(GroupClaimPaging_DirectionType value);
bool GroupClaimPaging_DirectionType_Parse(absl::string_view name, GroupClaimPaging_DirectionType* value);

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


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

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

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

  inline PutGroupApiKeyCreateRequest& operator=(const PutGroupApiKeyCreateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupApiKeyCreateRequest& operator=(PutGroupApiKeyCreateRequest&& 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 PutGroupApiKeyCreateRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupApiKeyCreateRequest* internal_default_instance() {
    return reinterpret_cast<const PutGroupApiKeyCreateRequest*>(
               &_PutGroupApiKeyCreateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(PutGroupApiKeyCreateRequest& a, PutGroupApiKeyCreateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupApiKeyCreateRequest* 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(PutGroupApiKeyCreateRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupApiKeyCreateRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupApiKeyCreateRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupApiKeyCreateRequest& from);
  void MergeFrom(const PutGroupApiKeyCreateRequest& 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(PutGroupApiKeyCreateRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kGroupIdFieldNumber = 1,
  };
  // string group_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_group_id() ;
  const std::string& group_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_group_id(Arg_&& arg, Args_... args);
  std::string* mutable_group_id();
  PROTOBUF_NODISCARD std::string* release_group_id();
  void set_allocated_group_id(std::string* ptr);

  private:
  const std::string& _internal_group_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_group_id(
      const std::string& value);
  std::string* _internal_mutable_group_id();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupApiKeyCreateRequest)
 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 group_id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PutGroupApiKeyCreateResponse& operator=(const PutGroupApiKeyCreateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupApiKeyCreateResponse& operator=(PutGroupApiKeyCreateResponse&& 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 PutGroupApiKeyCreateResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

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

  friend void swap(PutGroupApiKeyCreateResponse& a, PutGroupApiKeyCreateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupApiKeyCreateResponse* 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(PutGroupApiKeyCreateResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupApiKeyCreateResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupApiKeyCreateResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupApiKeyCreateResponse& from);
  void MergeFrom(const PutGroupApiKeyCreateResponse& 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(PutGroupApiKeyCreateResponse* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // string data = 1;
  bool has_data() const;
  void clear_data() ;
  const std::string& data() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_data(Arg_&& arg, Args_... args);
  std::string* mutable_data();
  PROTOBUF_NODISCARD std::string* release_data();
  void set_allocated_data(std::string* ptr);

  private:
  const std::string& _internal_data() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_data(
      const std::string& value);
  std::string* _internal_mutable_data();

  public:
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupApiKeyCreateResponse)
 private:
  class _Internal;
  void set_has_data();

  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_;
      ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline PutGroupApiKeyDeleteRequest& operator=(const PutGroupApiKeyDeleteRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupApiKeyDeleteRequest& operator=(PutGroupApiKeyDeleteRequest&& 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 PutGroupApiKeyDeleteRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupApiKeyDeleteRequest* internal_default_instance() {
    return reinterpret_cast<const PutGroupApiKeyDeleteRequest*>(
               &_PutGroupApiKeyDeleteRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(PutGroupApiKeyDeleteRequest& a, PutGroupApiKeyDeleteRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupApiKeyDeleteRequest* 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(PutGroupApiKeyDeleteRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupApiKeyDeleteRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupApiKeyDeleteRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupApiKeyDeleteRequest& from);
  void MergeFrom(const PutGroupApiKeyDeleteRequest& 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(PutGroupApiKeyDeleteRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kGroupIdFieldNumber = 1,
  };
  // string group_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_group_id() ;
  const std::string& group_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_group_id(Arg_&& arg, Args_... args);
  std::string* mutable_group_id();
  PROTOBUF_NODISCARD std::string* release_group_id();
  void set_allocated_group_id(std::string* ptr);

  private:
  const std::string& _internal_group_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_group_id(
      const std::string& value);
  std::string* _internal_mutable_group_id();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupApiKeyDeleteRequest)
 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 group_id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PutGroupApiKeyDeleteResponse& operator=(const PutGroupApiKeyDeleteResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupApiKeyDeleteResponse& operator=(PutGroupApiKeyDeleteResponse&& 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 PutGroupApiKeyDeleteResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupApiKeyDeleteResponse* internal_default_instance() {
    return reinterpret_cast<const PutGroupApiKeyDeleteResponse*>(
               &_PutGroupApiKeyDeleteResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(PutGroupApiKeyDeleteResponse& a, PutGroupApiKeyDeleteResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupApiKeyDeleteResponse* 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(PutGroupApiKeyDeleteResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupApiKeyDeleteResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupApiKeyDeleteResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupApiKeyDeleteResponse& from);
  void MergeFrom(const PutGroupApiKeyDeleteResponse& 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(PutGroupApiKeyDeleteResponse* other);

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

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupApiKeyDeleteResponse)
 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_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline Claim& operator=(const Claim& from) {
    CopyFrom(from);
    return *this;
  }
  inline Claim& operator=(Claim&& 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 Claim& default_instance() {
    return *internal_default_instance();
  }
  static inline const Claim* internal_default_instance() {
    return reinterpret_cast<const Claim*>(
               &_Claim_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(Claim& a, Claim& b) {
    a.Swap(&b);
  }
  inline void Swap(Claim* 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(Claim* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Claim* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Claim>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const Claim& from);
  void MergeFrom(const Claim& 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(Claim* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kKeyFieldNumber = 1,
    kValueFieldNumber = 2,
  };
  // string key = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_key() ;
  const std::string& key() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_key(Arg_&& arg, Args_... args);
  std::string* mutable_key();
  PROTOBUF_NODISCARD std::string* release_key();
  void set_allocated_key(std::string* ptr);

  private:
  const std::string& _internal_key() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_key(
      const std::string& value);
  std::string* _internal_mutable_key();

  public:
  // string value = 2;
  void clear_value() ;
  const std::string& value() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_value(Arg_&& arg, Args_... args);
  std::string* mutable_value();
  PROTOBUF_NODISCARD std::string* release_value();
  void set_allocated_value(std::string* ptr);

  private:
  const std::string& _internal_value() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_value(
      const std::string& value);
  std::string* _internal_mutable_value();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.Claim)
 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 key_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr value_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline UserGroup& operator=(const UserGroup& from) {
    CopyFrom(from);
    return *this;
  }
  inline UserGroup& operator=(UserGroup&& 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 UserGroup& default_instance() {
    return *internal_default_instance();
  }
  static inline const UserGroup* internal_default_instance() {
    return reinterpret_cast<const UserGroup*>(
               &_UserGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  friend void swap(UserGroup& a, UserGroup& b) {
    a.Swap(&b);
  }
  inline void Swap(UserGroup* 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(UserGroup* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  UserGroup* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<UserGroup>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const UserGroup& from);
  void MergeFrom(const UserGroup& 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(UserGroup* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kUserIdFieldNumber = 1,
    kGroupIdFieldNumber = 2,
  };
  // string user_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_user_id() ;
  const std::string& user_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_user_id(Arg_&& arg, Args_... args);
  std::string* mutable_user_id();
  PROTOBUF_NODISCARD std::string* release_user_id();
  void set_allocated_user_id(std::string* ptr);

  private:
  const std::string& _internal_user_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_user_id(
      const std::string& value);
  std::string* _internal_mutable_user_id();

  public:
  // string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_group_id() ;
  const std::string& group_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_group_id(Arg_&& arg, Args_... args);
  std::string* mutable_group_id();
  PROTOBUF_NODISCARD std::string* release_group_id();
  void set_allocated_group_id(std::string* ptr);

  private:
  const std::string& _internal_group_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_group_id(
      const std::string& value);
  std::string* _internal_mutable_group_id();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.UserGroup)
 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 user_id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr group_id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline Group& operator=(const Group& from) {
    CopyFrom(from);
    return *this;
  }
  inline Group& operator=(Group&& 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 Group& default_instance() {
    return *internal_default_instance();
  }
  static inline const Group* internal_default_instance() {
    return reinterpret_cast<const Group*>(
               &_Group_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  friend void swap(Group& a, Group& b) {
    a.Swap(&b);
  }
  inline void Swap(Group* 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(Group* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  Group* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<Group>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const Group& from);
  void MergeFrom(const Group& 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(Group* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kClaimsFieldNumber = 4,
    kRequirementsFieldNumber = 5,
    kTagsFieldNumber = 7,
    kIdFieldNumber = 1,
    kTitleFieldNumber = 2,
    kDescriptionFieldNumber = 3,
    kDeletedAtFieldNumber = 6,
  };
  // repeated .keyapis.access_management.v1.Claim claims = 4;
  int claims_size() const;
  private:
  int _internal_claims_size() const;

  public:
  void clear_claims() ;
  ::keyapis::access_management::v1::Claim* mutable_claims(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >*
      mutable_claims();
  private:
  const ::keyapis::access_management::v1::Claim& _internal_claims(int index) const;
  ::keyapis::access_management::v1::Claim* _internal_add_claims();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>& _internal_claims() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>* _internal_mutable_claims();
  public:
  const ::keyapis::access_management::v1::Claim& claims(int index) const;
  ::keyapis::access_management::v1::Claim* add_claims();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >&
      claims() const;
  // repeated .keyapis.access_management.v1.Claim requirements = 5;
  int requirements_size() const;
  private:
  int _internal_requirements_size() const;

  public:
  void clear_requirements() ;
  ::keyapis::access_management::v1::Claim* mutable_requirements(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >*
      mutable_requirements();
  private:
  const ::keyapis::access_management::v1::Claim& _internal_requirements(int index) const;
  ::keyapis::access_management::v1::Claim* _internal_add_requirements();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>& _internal_requirements() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>* _internal_mutable_requirements();
  public:
  const ::keyapis::access_management::v1::Claim& requirements(int index) const;
  ::keyapis::access_management::v1::Claim* add_requirements();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >&
      requirements() const;
  // repeated string tags = 7;
  int tags_size() const;
  private:
  int _internal_tags_size() const;

  public:
  void clear_tags() ;
  const std::string& tags(int index) const;
  std::string* mutable_tags(int index);
  void set_tags(int index, const std::string& value);
  void set_tags(int index, std::string&& value);
  void set_tags(int index, const char* value);
  void set_tags(int index, const char* value, std::size_t size);
  void set_tags(int index, absl::string_view value);
  std::string* add_tags();
  void add_tags(const std::string& value);
  void add_tags(std::string&& value);
  void add_tags(const char* value);
  void add_tags(const char* value, std::size_t size);
  void add_tags(absl::string_view value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& tags() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_tags();

  private:
  const std::string& _internal_tags(int index) const;
  std::string* _internal_add_tags();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& _internal_tags() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* _internal_mutable_tags();

  public:
  // string id = 1;
  void clear_id() ;
  const std::string& id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  std::string* mutable_id();
  PROTOBUF_NODISCARD std::string* release_id();
  void set_allocated_id(std::string* ptr);

  private:
  const std::string& _internal_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_id(
      const std::string& value);
  std::string* _internal_mutable_id();

  public:
  // string title = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_title() ;
  const std::string& title() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_title(Arg_&& arg, Args_... args);
  std::string* mutable_title();
  PROTOBUF_NODISCARD std::string* release_title();
  void set_allocated_title(std::string* ptr);

  private:
  const std::string& _internal_title() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_title(
      const std::string& value);
  std::string* _internal_mutable_title();

  public:
  // string description = 3;
  void clear_description() ;
  const std::string& description() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* ptr);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // .google.protobuf.Timestamp deleted_at = 6;
  bool has_deleted_at() const;
  void clear_deleted_at() ;
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& deleted_at() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Timestamp* release_deleted_at();
  ::PROTOBUF_NAMESPACE_ID::Timestamp* mutable_deleted_at();
  void set_allocated_deleted_at(::PROTOBUF_NAMESPACE_ID::Timestamp* deleted_at);
  private:
  const ::PROTOBUF_NAMESPACE_ID::Timestamp& _internal_deleted_at() const;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _internal_mutable_deleted_at();
  public:
  void unsafe_arena_set_allocated_deleted_at(
      ::PROTOBUF_NAMESPACE_ID::Timestamp* deleted_at);
  ::PROTOBUF_NAMESPACE_ID::Timestamp* unsafe_arena_release_deleted_at();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.Group)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim > claims_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim > requirements_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> tags_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr title_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_;
    ::PROTOBUF_NAMESPACE_ID::Timestamp* deleted_at_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupRequest& operator=(const GetGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupRequest& operator=(GetGroupRequest&& 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 GetGroupRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGroupRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupRequest*>(
               &_GetGroupRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  friend void swap(GetGroupRequest& a, GetGroupRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupRequest* 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(GetGroupRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupRequest& from);
  void MergeFrom(const GetGroupRequest& 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(GetGroupRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kIdFieldNumber = 1,
  };
  // string id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_id() ;
  const std::string& id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  std::string* mutable_id();
  PROTOBUF_NODISCARD std::string* release_id();
  void set_allocated_id(std::string* ptr);

  private:
  const std::string& _internal_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_id(
      const std::string& value);
  std::string* _internal_mutable_id();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupRequest)
 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 id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupResponse_Error& operator=(const GetGroupResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupResponse_Error& operator=(GetGroupResponse_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 GetGroupResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    REASON_NOT_SET = 0,
  };

  static inline const GetGroupResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetGroupResponse_Error*>(
               &_GetGroupResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  friend void swap(GetGroupResponse_Error& a, GetGroupResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupResponse_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(GetGroupResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupResponse_Error& from);
  void MergeFrom(const GetGroupResponse_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(GetGroupResponse_Error* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kValidationFieldNumber = 1,
  };
  // .keyapis.access_management.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::keyapis::access_management::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::ValidationError* release_validation();
  ::keyapis::access_management::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation);
  private:
  const ::keyapis::access_management::v1::ValidationError& _internal_validation() const;
  ::keyapis::access_management::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::keyapis::access_management::v1::ValidationError* validation);
  ::keyapis::access_management::v1::ValidationError* unsafe_arena_release_validation();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupResponse.Error)
 private:
  class _Internal;
  void set_has_validation();

  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::access_management::v1::ValidationError* validation_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupResponse& operator=(const GetGroupResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupResponse& operator=(GetGroupResponse&& 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 GetGroupResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupResponse*>(
               &_GetGroupResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  friend void swap(GetGroupResponse& a, GetGroupResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupResponse* 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(GetGroupResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupResponse& from);
  void MergeFrom(const GetGroupResponse& 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(GetGroupResponse* other);

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

  std::string GetTypeName() const final;

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

  typedef GetGroupResponse_Error Error;

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

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

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

  public:
  void clear_error() ;
  const ::keyapis::access_management::v1::GetGroupResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GetGroupResponse_Error* release_error();
  ::keyapis::access_management::v1::GetGroupResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_management::v1::GetGroupResponse_Error* error);
  private:
  const ::keyapis::access_management::v1::GetGroupResponse_Error& _internal_error() const;
  ::keyapis::access_management::v1::GetGroupResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_management::v1::GetGroupResponse_Error* error);
  ::keyapis::access_management::v1::GetGroupResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupResponse)
 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::access_management::v1::Group* data_;
      ::keyapis::access_management::v1::GetGroupResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupListRequest& operator=(const GetGroupListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupListRequest& operator=(GetGroupListRequest&& 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 GetGroupListRequest& default_instance() {
    return *internal_default_instance();
  }
  enum PaginationCase {
    kPaging = 2,
    PAGINATION_NOT_SET = 0,
  };

  static inline const GetGroupListRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupListRequest*>(
               &_GetGroupListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  friend void swap(GetGroupListRequest& a, GetGroupListRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupListRequest* 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(GetGroupListRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupListRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupListRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupListRequest& from);
  void MergeFrom(const GetGroupListRequest& 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(GetGroupListRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
    kPagingFieldNumber = 2,
  };
  // .keyapis.access_management.v1.GroupFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupFilter* release_filter();
  ::keyapis::access_management::v1::GroupFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupFilter* filter);
  ::keyapis::access_management::v1::GroupFilter* unsafe_arena_release_filter();
  // .keyapis.access_management.v1.GroupPaging paging = 2;
  bool has_paging() const;
  private:
  bool _internal_has_paging() const;

  public:
  void clear_paging() ;
  const ::keyapis::access_management::v1::GroupPaging& paging() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupPaging* release_paging();
  ::keyapis::access_management::v1::GroupPaging* mutable_paging();
  void set_allocated_paging(::keyapis::access_management::v1::GroupPaging* paging);
  private:
  const ::keyapis::access_management::v1::GroupPaging& _internal_paging() const;
  ::keyapis::access_management::v1::GroupPaging* _internal_mutable_paging();
  public:
  void unsafe_arena_set_allocated_paging(
      ::keyapis::access_management::v1::GroupPaging* paging);
  ::keyapis::access_management::v1::GroupPaging* unsafe_arena_release_paging();
  void clear_pagination();
  PaginationCase pagination_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupListRequest)
 private:
  class _Internal;
  void set_has_paging();

  inline bool has_pagination() const;
  inline void clear_has_pagination();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupFilter* filter_;
    union PaginationUnion {
      constexpr PaginationUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::access_management::v1::GroupPaging* paging_;
    } pagination_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupListResponse_Error& operator=(const GetGroupListResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupListResponse_Error& operator=(GetGroupListResponse_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 GetGroupListResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    REASON_NOT_SET = 0,
  };

  static inline const GetGroupListResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetGroupListResponse_Error*>(
               &_GetGroupListResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  friend void swap(GetGroupListResponse_Error& a, GetGroupListResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupListResponse_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(GetGroupListResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupListResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupListResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupListResponse_Error& from);
  void MergeFrom(const GetGroupListResponse_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(GetGroupListResponse_Error* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kValidationFieldNumber = 1,
  };
  // .keyapis.access_management.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::keyapis::access_management::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::ValidationError* release_validation();
  ::keyapis::access_management::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation);
  private:
  const ::keyapis::access_management::v1::ValidationError& _internal_validation() const;
  ::keyapis::access_management::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::keyapis::access_management::v1::ValidationError* validation);
  ::keyapis::access_management::v1::ValidationError* unsafe_arena_release_validation();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupListResponse.Error)
 private:
  class _Internal;
  void set_has_validation();

  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::access_management::v1::ValidationError* validation_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupListResponse& operator=(const GetGroupListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupListResponse& operator=(GetGroupListResponse&& 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 GetGroupListResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupListResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupListResponse*>(
               &_GetGroupListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  friend void swap(GetGroupListResponse& a, GetGroupListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupListResponse* 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(GetGroupListResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupListResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupListResponse& from);
  void MergeFrom(const GetGroupListResponse& 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(GetGroupListResponse* other);

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

  std::string GetTypeName() const final;

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

  typedef GetGroupListResponse_Error Error;

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

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

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

  public:
  void clear_error() ;
  const ::keyapis::access_management::v1::GetGroupListResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GetGroupListResponse_Error* release_error();
  ::keyapis::access_management::v1::GetGroupListResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_management::v1::GetGroupListResponse_Error* error);
  private:
  const ::keyapis::access_management::v1::GetGroupListResponse_Error& _internal_error() const;
  ::keyapis::access_management::v1::GetGroupListResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_management::v1::GetGroupListResponse_Error* error);
  ::keyapis::access_management::v1::GetGroupListResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupListResponse)
 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::access_management::v1::Group* data_;
      ::keyapis::access_management::v1::GetGroupListResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupCountRequest& operator=(const GetGroupCountRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupCountRequest& operator=(GetGroupCountRequest&& 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 GetGroupCountRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGroupCountRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupCountRequest*>(
               &_GetGroupCountRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  friend void swap(GetGroupCountRequest& a, GetGroupCountRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupCountRequest* 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(GetGroupCountRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupCountRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupCountRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupCountRequest& from);
  void MergeFrom(const GetGroupCountRequest& 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(GetGroupCountRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
  };
  // .keyapis.access_management.v1.GroupFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupFilter* release_filter();
  ::keyapis::access_management::v1::GroupFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupFilter* filter);
  ::keyapis::access_management::v1::GroupFilter* unsafe_arena_release_filter();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupCountRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupFilter* filter_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupCountResponse_Error& operator=(const GetGroupCountResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupCountResponse_Error& operator=(GetGroupCountResponse_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 GetGroupCountResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    REASON_NOT_SET = 0,
  };

  static inline const GetGroupCountResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetGroupCountResponse_Error*>(
               &_GetGroupCountResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  friend void swap(GetGroupCountResponse_Error& a, GetGroupCountResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupCountResponse_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(GetGroupCountResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupCountResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupCountResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupCountResponse_Error& from);
  void MergeFrom(const GetGroupCountResponse_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(GetGroupCountResponse_Error* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kValidationFieldNumber = 1,
  };
  // .keyapis.access_management.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::keyapis::access_management::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::ValidationError* release_validation();
  ::keyapis::access_management::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation);
  private:
  const ::keyapis::access_management::v1::ValidationError& _internal_validation() const;
  ::keyapis::access_management::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::keyapis::access_management::v1::ValidationError* validation);
  ::keyapis::access_management::v1::ValidationError* unsafe_arena_release_validation();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupCountResponse.Error)
 private:
  class _Internal;
  void set_has_validation();

  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::access_management::v1::ValidationError* validation_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupCountResponse& operator=(const GetGroupCountResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupCountResponse& operator=(GetGroupCountResponse&& 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 GetGroupCountResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupCountResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupCountResponse*>(
               &_GetGroupCountResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  friend void swap(GetGroupCountResponse& a, GetGroupCountResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupCountResponse* 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(GetGroupCountResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupCountResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupCountResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupCountResponse& from);
  void MergeFrom(const GetGroupCountResponse& 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(GetGroupCountResponse* other);

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

  std::string GetTypeName() const final;

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

  typedef GetGroupCountResponse_Error Error;

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

  enum : int {
    kDataFieldNumber = 1,
    kErrorFieldNumber = 2,
  };
  // int32 data = 1;
  bool has_data() const;
  void clear_data() ;
  ::int32_t data() const;
  void set_data(::int32_t value);

  private:
  ::int32_t _internal_data() const;
  void _internal_set_data(::int32_t value);

  public:
  // .keyapis.access_management.v1.GetGroupCountResponse.Error error = 2;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

  public:
  void clear_error() ;
  const ::keyapis::access_management::v1::GetGroupCountResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GetGroupCountResponse_Error* release_error();
  ::keyapis::access_management::v1::GetGroupCountResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_management::v1::GetGroupCountResponse_Error* error);
  private:
  const ::keyapis::access_management::v1::GetGroupCountResponse_Error& _internal_error() const;
  ::keyapis::access_management::v1::GetGroupCountResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_management::v1::GetGroupCountResponse_Error* error);
  ::keyapis::access_management::v1::GetGroupCountResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupCountResponse)
 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_;
      ::int32_t data_;
      ::keyapis::access_management::v1::GetGroupCountResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

class GroupFilter_RequirementsEntry_DoNotUse final : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupFilter_RequirementsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupFilter_RequirementsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> SuperType;
  GroupFilter_RequirementsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR GroupFilter_RequirementsEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit GroupFilter_RequirementsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const GroupFilter_RequirementsEntry_DoNotUse& other);
  static const GroupFilter_RequirementsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const GroupFilter_RequirementsEntry_DoNotUse*>(&_GroupFilter_RequirementsEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupFilter.RequirementsEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupFilter.RequirementsEntry.value");
 }
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};
// -------------------------------------------------------------------

class GroupFilter_ClaimsEntry_DoNotUse final : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupFilter_ClaimsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupFilter_ClaimsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> SuperType;
  GroupFilter_ClaimsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR GroupFilter_ClaimsEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit GroupFilter_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const GroupFilter_ClaimsEntry_DoNotUse& other);
  static const GroupFilter_ClaimsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const GroupFilter_ClaimsEntry_DoNotUse*>(&_GroupFilter_ClaimsEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupFilter.ClaimsEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupFilter.ClaimsEntry.value");
 }
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline GroupFilter& operator=(const GroupFilter& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupFilter& operator=(GroupFilter&& 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 GroupFilter& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupFilter* internal_default_instance() {
    return reinterpret_cast<const GroupFilter*>(
               &_GroupFilter_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  friend void swap(GroupFilter& a, GroupFilter& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupFilter* 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(GroupFilter* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupFilter* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupFilter>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupFilter& from);
  void MergeFrom(const GroupFilter& 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(GroupFilter* other);

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

  std::string GetTypeName() const final;

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


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

  enum : int {
    kRequirementsFieldNumber = 2,
    kClaimsFieldNumber = 3,
    kTagsFieldNumber = 4,
    kTextFieldNumber = 1,
    kHideDeletedFieldNumber = 5,
  };
  // map<string, string> requirements = 2;
  int requirements_size() const;
  private:
  int _internal_requirements_size() const;

  public:
  void clear_requirements() ;
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      _internal_requirements() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      _internal_mutable_requirements();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      requirements() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      mutable_requirements();
  // map<string, string> claims = 3;
  int claims_size() const;
  private:
  int _internal_claims_size() const;

  public:
  void clear_claims() ;
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      _internal_claims() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      _internal_mutable_claims();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      claims() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      mutable_claims();
  // repeated string tags = 4;
  int tags_size() const;
  private:
  int _internal_tags_size() const;

  public:
  void clear_tags() ;
  const std::string& tags(int index) const;
  std::string* mutable_tags(int index);
  void set_tags(int index, const std::string& value);
  void set_tags(int index, std::string&& value);
  void set_tags(int index, const char* value);
  void set_tags(int index, const char* value, std::size_t size);
  void set_tags(int index, absl::string_view value);
  std::string* add_tags();
  void add_tags(const std::string& value);
  void add_tags(std::string&& value);
  void add_tags(const char* value);
  void add_tags(const char* value, std::size_t size);
  void add_tags(absl::string_view value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& tags() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_tags();

  private:
  const std::string& _internal_tags(int index) const;
  std::string* _internal_add_tags();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& _internal_tags() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* _internal_mutable_tags();

  public:
  // string text = 1;
  void clear_text() ;
  const std::string& text() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_text(Arg_&& arg, Args_... args);
  std::string* mutable_text();
  PROTOBUF_NODISCARD std::string* release_text();
  void set_allocated_text(std::string* ptr);

  private:
  const std::string& _internal_text() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_text(
      const std::string& value);
  std::string* _internal_mutable_text();

  public:
  // .google.protobuf.BoolValue hide_deleted = 5;
  bool has_hide_deleted() const;
  void clear_hide_deleted() ;
  const ::PROTOBUF_NAMESPACE_ID::BoolValue& hide_deleted() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::BoolValue* release_hide_deleted();
  ::PROTOBUF_NAMESPACE_ID::BoolValue* mutable_hide_deleted();
  void set_allocated_hide_deleted(::PROTOBUF_NAMESPACE_ID::BoolValue* hide_deleted);
  private:
  const ::PROTOBUF_NAMESPACE_ID::BoolValue& _internal_hide_deleted() const;
  ::PROTOBUF_NAMESPACE_ID::BoolValue* _internal_mutable_hide_deleted();
  public:
  void unsafe_arena_set_allocated_hide_deleted(
      ::PROTOBUF_NAMESPACE_ID::BoolValue* hide_deleted);
  ::PROTOBUF_NAMESPACE_ID::BoolValue* unsafe_arena_release_hide_deleted();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupFilter)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::MapFieldLite<
        GroupFilter_RequirementsEntry_DoNotUse,
        std::string, std::string,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> requirements_;
    ::PROTOBUF_NAMESPACE_ID::internal::MapFieldLite<
        GroupFilter_ClaimsEntry_DoNotUse,
        std::string, std::string,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> claims_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> tags_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr text_;
    ::PROTOBUF_NAMESPACE_ID::BoolValue* hide_deleted_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GroupPaging& operator=(const GroupPaging& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupPaging& operator=(GroupPaging&& 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 GroupPaging& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupPaging* internal_default_instance() {
    return reinterpret_cast<const GroupPaging*>(
               &_GroupPaging_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  friend void swap(GroupPaging& a, GroupPaging& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupPaging* 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(GroupPaging* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupPaging* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupPaging>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupPaging& from);
  void MergeFrom(const GroupPaging& 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(GroupPaging* other);

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

  std::string GetTypeName() const final;

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

  using OrderByType = GroupPaging_OrderByType;
  static constexpr OrderByType ORDER_BY_TYPE_UNKNOWN = GroupPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN;
  static constexpr OrderByType ID = GroupPaging_OrderByType_ID;
  static constexpr OrderByType TITLE = GroupPaging_OrderByType_TITLE;
  static inline bool OrderByType_IsValid(int value) {
    return GroupPaging_OrderByType_IsValid(value);
  }
  static constexpr OrderByType OrderByType_MIN = GroupPaging_OrderByType_OrderByType_MIN;
  static constexpr OrderByType OrderByType_MAX = GroupPaging_OrderByType_OrderByType_MAX;
  static constexpr int OrderByType_ARRAYSIZE = GroupPaging_OrderByType_OrderByType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& OrderByType_Name(T value) {
    return GroupPaging_OrderByType_Name(value);
  }
  static inline bool OrderByType_Parse(absl::string_view name, OrderByType* value) {
    return GroupPaging_OrderByType_Parse(name, value);
  }

  using DirectionType = GroupPaging_DirectionType;
  static constexpr DirectionType DIRECTION_TYPE_UNKNOWN = GroupPaging_DirectionType_DIRECTION_TYPE_UNKNOWN;
  static constexpr DirectionType DESC = GroupPaging_DirectionType_DESC;
  static constexpr DirectionType ASC = GroupPaging_DirectionType_ASC;
  static inline bool DirectionType_IsValid(int value) {
    return GroupPaging_DirectionType_IsValid(value);
  }
  static constexpr DirectionType DirectionType_MIN = GroupPaging_DirectionType_DirectionType_MIN;
  static constexpr DirectionType DirectionType_MAX = GroupPaging_DirectionType_DirectionType_MAX;
  static constexpr int DirectionType_ARRAYSIZE = GroupPaging_DirectionType_DirectionType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& DirectionType_Name(T value) {
    return GroupPaging_DirectionType_Name(value);
  }
  static inline bool DirectionType_Parse(absl::string_view name, DirectionType* value) {
    return GroupPaging_DirectionType_Parse(name, value);
  }

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

  enum : int {
    kOrderByTypeFieldNumber = 1,
    kDirectionTypeFieldNumber = 2,
    kLimitFieldNumber = 3,
    kOffsetFieldNumber = 4,
  };
  // .keyapis.access_management.v1.GroupPaging.OrderByType order_by_type = 1;
  void clear_order_by_type() ;
  ::keyapis::access_management::v1::GroupPaging_OrderByType order_by_type() const;
  void set_order_by_type(::keyapis::access_management::v1::GroupPaging_OrderByType value);

  private:
  ::keyapis::access_management::v1::GroupPaging_OrderByType _internal_order_by_type() const;
  void _internal_set_order_by_type(::keyapis::access_management::v1::GroupPaging_OrderByType value);

  public:
  // .keyapis.access_management.v1.GroupPaging.DirectionType direction_type = 2;
  void clear_direction_type() ;
  ::keyapis::access_management::v1::GroupPaging_DirectionType direction_type() const;
  void set_direction_type(::keyapis::access_management::v1::GroupPaging_DirectionType value);

  private:
  ::keyapis::access_management::v1::GroupPaging_DirectionType _internal_direction_type() const;
  void _internal_set_direction_type(::keyapis::access_management::v1::GroupPaging_DirectionType value);

  public:
  // int32 limit = 3;
  void clear_limit() ;
  ::int32_t limit() const;
  void set_limit(::int32_t value);

  private:
  ::int32_t _internal_limit() const;
  void _internal_set_limit(::int32_t value);

  public:
  // int32 offset = 4;
  void clear_offset() ;
  ::int32_t offset() const;
  void set_offset(::int32_t value);

  private:
  ::int32_t _internal_offset() const;
  void _internal_set_offset(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupPaging)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int order_by_type_;
    int direction_type_;
    ::int32_t limit_;
    ::int32_t offset_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PostGroupRequest& operator=(const PostGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostGroupRequest& operator=(PostGroupRequest&& 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 PostGroupRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostGroupRequest* internal_default_instance() {
    return reinterpret_cast<const PostGroupRequest*>(
               &_PostGroupRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  friend void swap(PostGroupRequest& a, PostGroupRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PostGroupRequest* 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(PostGroupRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostGroupRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostGroupRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostGroupRequest& from);
  void MergeFrom(const PostGroupRequest& 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(PostGroupRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // .keyapis.access_management.v1.Group data = 1 [(.google.api.field_behavior) = REQUIRED];
  bool has_data() const;
  void clear_data() ;
  const ::keyapis::access_management::v1::Group& data() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::Group* release_data();
  ::keyapis::access_management::v1::Group* mutable_data();
  void set_allocated_data(::keyapis::access_management::v1::Group* data);
  private:
  const ::keyapis::access_management::v1::Group& _internal_data() const;
  ::keyapis::access_management::v1::Group* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::keyapis::access_management::v1::Group* data);
  ::keyapis::access_management::v1::Group* unsafe_arena_release_data();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PostGroupRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::Group* data_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PostGroupByTemplateRequest& operator=(const PostGroupByTemplateRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostGroupByTemplateRequest& operator=(PostGroupByTemplateRequest&& 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 PostGroupByTemplateRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PostGroupByTemplateRequest* internal_default_instance() {
    return reinterpret_cast<const PostGroupByTemplateRequest*>(
               &_PostGroupByTemplateRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  friend void swap(PostGroupByTemplateRequest& a, PostGroupByTemplateRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PostGroupByTemplateRequest* 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(PostGroupByTemplateRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostGroupByTemplateRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostGroupByTemplateRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostGroupByTemplateRequest& from);
  void MergeFrom(const PostGroupByTemplateRequest& 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(PostGroupByTemplateRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kGroupRequirementsFieldNumber = 3,
    kGroupTemplateIdFieldNumber = 1,
    kGroupTitleFieldNumber = 2,
  };
  // repeated .keyapis.access_management.v1.Claim group_requirements = 3;
  int group_requirements_size() const;
  private:
  int _internal_group_requirements_size() const;

  public:
  void clear_group_requirements() ;
  ::keyapis::access_management::v1::Claim* mutable_group_requirements(int index);
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >*
      mutable_group_requirements();
  private:
  const ::keyapis::access_management::v1::Claim& _internal_group_requirements(int index) const;
  ::keyapis::access_management::v1::Claim* _internal_add_group_requirements();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>& _internal_group_requirements() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>* _internal_mutable_group_requirements();
  public:
  const ::keyapis::access_management::v1::Claim& group_requirements(int index) const;
  ::keyapis::access_management::v1::Claim* add_group_requirements();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >&
      group_requirements() const;
  // string group_template_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_group_template_id() ;
  const std::string& group_template_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_group_template_id(Arg_&& arg, Args_... args);
  std::string* mutable_group_template_id();
  PROTOBUF_NODISCARD std::string* release_group_template_id();
  void set_allocated_group_template_id(std::string* ptr);

  private:
  const std::string& _internal_group_template_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_group_template_id(
      const std::string& value);
  std::string* _internal_mutable_group_template_id();

  public:
  // string group_title = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_group_title() ;
  const std::string& group_title() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_group_title(Arg_&& arg, Args_... args);
  std::string* mutable_group_title();
  PROTOBUF_NODISCARD std::string* release_group_title();
  void set_allocated_group_title(std::string* ptr);

  private:
  const std::string& _internal_group_title() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_group_title(
      const std::string& value);
  std::string* _internal_mutable_group_title();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PostGroupByTemplateRequest)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim > group_requirements_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr group_template_id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr group_title_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PostGroupResponse_Error& operator=(const PostGroupResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostGroupResponse_Error& operator=(PostGroupResponse_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 PostGroupResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    REASON_NOT_SET = 0,
  };

  static inline const PostGroupResponse_Error* internal_default_instance() {
    return reinterpret_cast<const PostGroupResponse_Error*>(
               &_PostGroupResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  friend void swap(PostGroupResponse_Error& a, PostGroupResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(PostGroupResponse_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(PostGroupResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostGroupResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostGroupResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostGroupResponse_Error& from);
  void MergeFrom(const PostGroupResponse_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(PostGroupResponse_Error* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kValidationFieldNumber = 1,
  };
  // .keyapis.access_management.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::keyapis::access_management::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::ValidationError* release_validation();
  ::keyapis::access_management::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation);
  private:
  const ::keyapis::access_management::v1::ValidationError& _internal_validation() const;
  ::keyapis::access_management::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::keyapis::access_management::v1::ValidationError* validation);
  ::keyapis::access_management::v1::ValidationError* unsafe_arena_release_validation();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PostGroupResponse.Error)
 private:
  class _Internal;
  void set_has_validation();

  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::access_management::v1::ValidationError* validation_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline PostGroupResponse& operator=(const PostGroupResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostGroupResponse& operator=(PostGroupResponse&& 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 PostGroupResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const PostGroupResponse* internal_default_instance() {
    return reinterpret_cast<const PostGroupResponse*>(
               &_PostGroupResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    23;

  friend void swap(PostGroupResponse& a, PostGroupResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PostGroupResponse* 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(PostGroupResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostGroupResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostGroupResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostGroupResponse& from);
  void MergeFrom(const PostGroupResponse& 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(PostGroupResponse* other);

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

  std::string GetTypeName() const final;

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

  typedef PostGroupResponse_Error Error;

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

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

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

  public:
  void clear_error() ;
  const ::keyapis::access_management::v1::PostGroupResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::PostGroupResponse_Error* release_error();
  ::keyapis::access_management::v1::PostGroupResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_management::v1::PostGroupResponse_Error* error);
  private:
  const ::keyapis::access_management::v1::PostGroupResponse_Error& _internal_error() const;
  ::keyapis::access_management::v1::PostGroupResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_management::v1::PostGroupResponse_Error* error);
  ::keyapis::access_management::v1::PostGroupResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PostGroupResponse)
 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::access_management::v1::Group* data_;
      ::keyapis::access_management::v1::PostGroupResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline PostGroupByTemplateResponse_Error& operator=(const PostGroupByTemplateResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostGroupByTemplateResponse_Error& operator=(PostGroupByTemplateResponse_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 PostGroupByTemplateResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kValidation = 1,
    kGroupTemplateNotFoundError = 2,
    REASON_NOT_SET = 0,
  };

  static inline const PostGroupByTemplateResponse_Error* internal_default_instance() {
    return reinterpret_cast<const PostGroupByTemplateResponse_Error*>(
               &_PostGroupByTemplateResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  friend void swap(PostGroupByTemplateResponse_Error& a, PostGroupByTemplateResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(PostGroupByTemplateResponse_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(PostGroupByTemplateResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostGroupByTemplateResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostGroupByTemplateResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostGroupByTemplateResponse_Error& from);
  void MergeFrom(const PostGroupByTemplateResponse_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(PostGroupByTemplateResponse_Error* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kValidationFieldNumber = 1,
    kGroupTemplateNotFoundErrorFieldNumber = 2,
  };
  // .keyapis.access_management.v1.ValidationError validation = 1;
  bool has_validation() const;
  private:
  bool _internal_has_validation() const;

  public:
  void clear_validation() ;
  const ::keyapis::access_management::v1::ValidationError& validation() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::ValidationError* release_validation();
  ::keyapis::access_management::v1::ValidationError* mutable_validation();
  void set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation);
  private:
  const ::keyapis::access_management::v1::ValidationError& _internal_validation() const;
  ::keyapis::access_management::v1::ValidationError* _internal_mutable_validation();
  public:
  void unsafe_arena_set_allocated_validation(
      ::keyapis::access_management::v1::ValidationError* validation);
  ::keyapis::access_management::v1::ValidationError* unsafe_arena_release_validation();
  // .keyapis.access_management.v1.GroupTemplateNotFoundError group_template_not_found_error = 2;
  bool has_group_template_not_found_error() const;
  private:
  bool _internal_has_group_template_not_found_error() const;

  public:
  void clear_group_template_not_found_error() ;
  const ::keyapis::access_management::v1::GroupTemplateNotFoundError& group_template_not_found_error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupTemplateNotFoundError* release_group_template_not_found_error();
  ::keyapis::access_management::v1::GroupTemplateNotFoundError* mutable_group_template_not_found_error();
  void set_allocated_group_template_not_found_error(::keyapis::access_management::v1::GroupTemplateNotFoundError* group_template_not_found_error);
  private:
  const ::keyapis::access_management::v1::GroupTemplateNotFoundError& _internal_group_template_not_found_error() const;
  ::keyapis::access_management::v1::GroupTemplateNotFoundError* _internal_mutable_group_template_not_found_error();
  public:
  void unsafe_arena_set_allocated_group_template_not_found_error(
      ::keyapis::access_management::v1::GroupTemplateNotFoundError* group_template_not_found_error);
  ::keyapis::access_management::v1::GroupTemplateNotFoundError* unsafe_arena_release_group_template_not_found_error();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PostGroupByTemplateResponse.Error)
 private:
  class _Internal;
  void set_has_validation();
  void set_has_group_template_not_found_error();

  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::access_management::v1::ValidationError* validation_;
      ::keyapis::access_management::v1::GroupTemplateNotFoundError* group_template_not_found_error_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline PostGroupByTemplateResponse& operator=(const PostGroupByTemplateResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PostGroupByTemplateResponse& operator=(PostGroupByTemplateResponse&& 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 PostGroupByTemplateResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const PostGroupByTemplateResponse* internal_default_instance() {
    return reinterpret_cast<const PostGroupByTemplateResponse*>(
               &_PostGroupByTemplateResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  friend void swap(PostGroupByTemplateResponse& a, PostGroupByTemplateResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PostGroupByTemplateResponse* 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(PostGroupByTemplateResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PostGroupByTemplateResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PostGroupByTemplateResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PostGroupByTemplateResponse& from);
  void MergeFrom(const PostGroupByTemplateResponse& 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(PostGroupByTemplateResponse* other);

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

  std::string GetTypeName() const final;

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

  typedef PostGroupByTemplateResponse_Error Error;

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

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

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

  public:
  void clear_error() ;
  const ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* release_error();
  ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* error);
  private:
  const ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error& _internal_error() const;
  ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* error);
  ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PostGroupByTemplateResponse)
 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::access_management::v1::Group* data_;
      ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline DeleteGroupRequest& operator=(const DeleteGroupRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteGroupRequest& operator=(DeleteGroupRequest&& 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 DeleteGroupRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeleteGroupRequest* internal_default_instance() {
    return reinterpret_cast<const DeleteGroupRequest*>(
               &_DeleteGroupRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  friend void swap(DeleteGroupRequest& a, DeleteGroupRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(DeleteGroupRequest* 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(DeleteGroupRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DeleteGroupRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DeleteGroupRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const DeleteGroupRequest& from);
  void MergeFrom(const DeleteGroupRequest& 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(DeleteGroupRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kIdFieldNumber = 1,
  };
  // string id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_id() ;
  const std::string& id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_id(Arg_&& arg, Args_... args);
  std::string* mutable_id();
  PROTOBUF_NODISCARD std::string* release_id();
  void set_allocated_id(std::string* ptr);

  private:
  const std::string& _internal_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_id(
      const std::string& value);
  std::string* _internal_mutable_id();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.DeleteGroupRequest)
 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 id_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline DeleteGroupResponse& operator=(const DeleteGroupResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteGroupResponse& operator=(DeleteGroupResponse&& 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 DeleteGroupResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeleteGroupResponse* internal_default_instance() {
    return reinterpret_cast<const DeleteGroupResponse*>(
               &_DeleteGroupResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

  friend void swap(DeleteGroupResponse& a, DeleteGroupResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(DeleteGroupResponse* 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(DeleteGroupResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  DeleteGroupResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DeleteGroupResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const DeleteGroupResponse& from);
  void MergeFrom(const DeleteGroupResponse& 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(DeleteGroupResponse* other);

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

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.DeleteGroupResponse)
 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_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PutGroupUserAttachRequest& operator=(const PutGroupUserAttachRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupUserAttachRequest& operator=(PutGroupUserAttachRequest&& 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 PutGroupUserAttachRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupUserAttachRequest* internal_default_instance() {
    return reinterpret_cast<const PutGroupUserAttachRequest*>(
               &_PutGroupUserAttachRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

  friend void swap(PutGroupUserAttachRequest& a, PutGroupUserAttachRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupUserAttachRequest* 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(PutGroupUserAttachRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupUserAttachRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupUserAttachRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupUserAttachRequest& from);
  void MergeFrom(const PutGroupUserAttachRequest& 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(PutGroupUserAttachRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kUserGroupFieldNumber = 1,
  };
  // .keyapis.access_management.v1.UserGroup user_group = 1 [(.google.api.field_behavior) = REQUIRED];
  bool has_user_group() const;
  void clear_user_group() ;
  const ::keyapis::access_management::v1::UserGroup& user_group() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::UserGroup* release_user_group();
  ::keyapis::access_management::v1::UserGroup* mutable_user_group();
  void set_allocated_user_group(::keyapis::access_management::v1::UserGroup* user_group);
  private:
  const ::keyapis::access_management::v1::UserGroup& _internal_user_group() const;
  ::keyapis::access_management::v1::UserGroup* _internal_mutable_user_group();
  public:
  void unsafe_arena_set_allocated_user_group(
      ::keyapis::access_management::v1::UserGroup* user_group);
  ::keyapis::access_management::v1::UserGroup* unsafe_arena_release_user_group();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupUserAttachRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::UserGroup* user_group_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PutGroupUserAttachResponse& operator=(const PutGroupUserAttachResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupUserAttachResponse& operator=(PutGroupUserAttachResponse&& 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 PutGroupUserAttachResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupUserAttachResponse* internal_default_instance() {
    return reinterpret_cast<const PutGroupUserAttachResponse*>(
               &_PutGroupUserAttachResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

  friend void swap(PutGroupUserAttachResponse& a, PutGroupUserAttachResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupUserAttachResponse* 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(PutGroupUserAttachResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupUserAttachResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupUserAttachResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupUserAttachResponse& from);
  void MergeFrom(const PutGroupUserAttachResponse& 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(PutGroupUserAttachResponse* other);

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

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupUserAttachResponse)
 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_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline PutGroupUserDetachRequest& operator=(const PutGroupUserDetachRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupUserDetachRequest& operator=(PutGroupUserDetachRequest&& 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 PutGroupUserDetachRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupUserDetachRequest* internal_default_instance() {
    return reinterpret_cast<const PutGroupUserDetachRequest*>(
               &_PutGroupUserDetachRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    30;

  friend void swap(PutGroupUserDetachRequest& a, PutGroupUserDetachRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupUserDetachRequest* 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(PutGroupUserDetachRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupUserDetachRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupUserDetachRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupUserDetachRequest& from);
  void MergeFrom(const PutGroupUserDetachRequest& 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(PutGroupUserDetachRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kUserGroupFieldNumber = 1,
  };
  // .keyapis.access_management.v1.UserGroup user_group = 1 [(.google.api.field_behavior) = REQUIRED];
  bool has_user_group() const;
  void clear_user_group() ;
  const ::keyapis::access_management::v1::UserGroup& user_group() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::UserGroup* release_user_group();
  ::keyapis::access_management::v1::UserGroup* mutable_user_group();
  void set_allocated_user_group(::keyapis::access_management::v1::UserGroup* user_group);
  private:
  const ::keyapis::access_management::v1::UserGroup& _internal_user_group() const;
  ::keyapis::access_management::v1::UserGroup* _internal_mutable_user_group();
  public:
  void unsafe_arena_set_allocated_user_group(
      ::keyapis::access_management::v1::UserGroup* user_group);
  ::keyapis::access_management::v1::UserGroup* unsafe_arena_release_user_group();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupUserDetachRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::UserGroup* user_group_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupUserListRequest& operator=(const GetGroupUserListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupUserListRequest& operator=(GetGroupUserListRequest&& 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 GetGroupUserListRequest& default_instance() {
    return *internal_default_instance();
  }
  enum PaginationCase {
    kPaging = 2,
    PAGINATION_NOT_SET = 0,
  };

  static inline const GetGroupUserListRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupUserListRequest*>(
               &_GetGroupUserListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    31;

  friend void swap(GetGroupUserListRequest& a, GetGroupUserListRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupUserListRequest* 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(GetGroupUserListRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupUserListRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupUserListRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupUserListRequest& from);
  void MergeFrom(const GetGroupUserListRequest& 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(GetGroupUserListRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
    kPagingFieldNumber = 2,
  };
  // .keyapis.access_management.v1.GroupUserFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupUserFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupUserFilter* release_filter();
  ::keyapis::access_management::v1::GroupUserFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupUserFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupUserFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupUserFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupUserFilter* filter);
  ::keyapis::access_management::v1::GroupUserFilter* unsafe_arena_release_filter();
  // .keyapis.access_management.v1.GroupUserPaging paging = 2;
  bool has_paging() const;
  private:
  bool _internal_has_paging() const;

  public:
  void clear_paging() ;
  const ::keyapis::access_management::v1::GroupUserPaging& paging() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupUserPaging* release_paging();
  ::keyapis::access_management::v1::GroupUserPaging* mutable_paging();
  void set_allocated_paging(::keyapis::access_management::v1::GroupUserPaging* paging);
  private:
  const ::keyapis::access_management::v1::GroupUserPaging& _internal_paging() const;
  ::keyapis::access_management::v1::GroupUserPaging* _internal_mutable_paging();
  public:
  void unsafe_arena_set_allocated_paging(
      ::keyapis::access_management::v1::GroupUserPaging* paging);
  ::keyapis::access_management::v1::GroupUserPaging* unsafe_arena_release_paging();
  void clear_pagination();
  PaginationCase pagination_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupUserListRequest)
 private:
  class _Internal;
  void set_has_paging();

  inline bool has_pagination() const;
  inline void clear_has_pagination();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupUserFilter* filter_;
    union PaginationUnion {
      constexpr PaginationUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::access_management::v1::GroupUserPaging* paging_;
    } pagination_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GroupUserPaging& operator=(const GroupUserPaging& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupUserPaging& operator=(GroupUserPaging&& 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 GroupUserPaging& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupUserPaging* internal_default_instance() {
    return reinterpret_cast<const GroupUserPaging*>(
               &_GroupUserPaging_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    32;

  friend void swap(GroupUserPaging& a, GroupUserPaging& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupUserPaging* 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(GroupUserPaging* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupUserPaging* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupUserPaging>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupUserPaging& from);
  void MergeFrom(const GroupUserPaging& 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(GroupUserPaging* other);

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

  std::string GetTypeName() const final;

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

  using OrderByType = GroupUserPaging_OrderByType;
  static constexpr OrderByType ORDER_BY_TYPE_UNKNOWN = GroupUserPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN;
  static constexpr OrderByType GROUP_ID = GroupUserPaging_OrderByType_GROUP_ID;
  static constexpr OrderByType USER_ID = GroupUserPaging_OrderByType_USER_ID;
  static inline bool OrderByType_IsValid(int value) {
    return GroupUserPaging_OrderByType_IsValid(value);
  }
  static constexpr OrderByType OrderByType_MIN = GroupUserPaging_OrderByType_OrderByType_MIN;
  static constexpr OrderByType OrderByType_MAX = GroupUserPaging_OrderByType_OrderByType_MAX;
  static constexpr int OrderByType_ARRAYSIZE = GroupUserPaging_OrderByType_OrderByType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& OrderByType_Name(T value) {
    return GroupUserPaging_OrderByType_Name(value);
  }
  static inline bool OrderByType_Parse(absl::string_view name, OrderByType* value) {
    return GroupUserPaging_OrderByType_Parse(name, value);
  }

  using DirectionType = GroupUserPaging_DirectionType;
  static constexpr DirectionType DIRECTION_TYPE_UNKNOWN = GroupUserPaging_DirectionType_DIRECTION_TYPE_UNKNOWN;
  static constexpr DirectionType DESC = GroupUserPaging_DirectionType_DESC;
  static constexpr DirectionType ASC = GroupUserPaging_DirectionType_ASC;
  static inline bool DirectionType_IsValid(int value) {
    return GroupUserPaging_DirectionType_IsValid(value);
  }
  static constexpr DirectionType DirectionType_MIN = GroupUserPaging_DirectionType_DirectionType_MIN;
  static constexpr DirectionType DirectionType_MAX = GroupUserPaging_DirectionType_DirectionType_MAX;
  static constexpr int DirectionType_ARRAYSIZE = GroupUserPaging_DirectionType_DirectionType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& DirectionType_Name(T value) {
    return GroupUserPaging_DirectionType_Name(value);
  }
  static inline bool DirectionType_Parse(absl::string_view name, DirectionType* value) {
    return GroupUserPaging_DirectionType_Parse(name, value);
  }

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

  enum : int {
    kOrderByTypeFieldNumber = 1,
    kDirectionTypeFieldNumber = 2,
    kLimitFieldNumber = 3,
    kOffsetFieldNumber = 4,
  };
  // .keyapis.access_management.v1.GroupUserPaging.OrderByType order_by_type = 1;
  void clear_order_by_type() ;
  ::keyapis::access_management::v1::GroupUserPaging_OrderByType order_by_type() const;
  void set_order_by_type(::keyapis::access_management::v1::GroupUserPaging_OrderByType value);

  private:
  ::keyapis::access_management::v1::GroupUserPaging_OrderByType _internal_order_by_type() const;
  void _internal_set_order_by_type(::keyapis::access_management::v1::GroupUserPaging_OrderByType value);

  public:
  // .keyapis.access_management.v1.GroupUserPaging.DirectionType direction_type = 2;
  void clear_direction_type() ;
  ::keyapis::access_management::v1::GroupUserPaging_DirectionType direction_type() const;
  void set_direction_type(::keyapis::access_management::v1::GroupUserPaging_DirectionType value);

  private:
  ::keyapis::access_management::v1::GroupUserPaging_DirectionType _internal_direction_type() const;
  void _internal_set_direction_type(::keyapis::access_management::v1::GroupUserPaging_DirectionType value);

  public:
  // int32 limit = 3;
  void clear_limit() ;
  ::int32_t limit() const;
  void set_limit(::int32_t value);

  private:
  ::int32_t _internal_limit() const;
  void _internal_set_limit(::int32_t value);

  public:
  // int32 offset = 4;
  void clear_offset() ;
  ::int32_t offset() const;
  void set_offset(::int32_t value);

  private:
  ::int32_t _internal_offset() const;
  void _internal_set_offset(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupUserPaging)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int order_by_type_;
    int direction_type_;
    ::int32_t limit_;
    ::int32_t offset_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GroupUserFilter& operator=(const GroupUserFilter& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupUserFilter& operator=(GroupUserFilter&& 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 GroupUserFilter& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupUserFilter* internal_default_instance() {
    return reinterpret_cast<const GroupUserFilter*>(
               &_GroupUserFilter_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    33;

  friend void swap(GroupUserFilter& a, GroupUserFilter& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupUserFilter* 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(GroupUserFilter* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupUserFilter* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupUserFilter>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupUserFilter& from);
  void MergeFrom(const GroupUserFilter& 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(GroupUserFilter* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kGroupIdsFieldNumber = 1,
    kUserIdsFieldNumber = 2,
  };
  // repeated string group_ids = 1;
  int group_ids_size() const;
  private:
  int _internal_group_ids_size() const;

  public:
  void clear_group_ids() ;
  const std::string& group_ids(int index) const;
  std::string* mutable_group_ids(int index);
  void set_group_ids(int index, const std::string& value);
  void set_group_ids(int index, std::string&& value);
  void set_group_ids(int index, const char* value);
  void set_group_ids(int index, const char* value, std::size_t size);
  void set_group_ids(int index, absl::string_view value);
  std::string* add_group_ids();
  void add_group_ids(const std::string& value);
  void add_group_ids(std::string&& value);
  void add_group_ids(const char* value);
  void add_group_ids(const char* value, std::size_t size);
  void add_group_ids(absl::string_view value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& group_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_group_ids();

  private:
  const std::string& _internal_group_ids(int index) const;
  std::string* _internal_add_group_ids();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& _internal_group_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* _internal_mutable_group_ids();

  public:
  // repeated string user_ids = 2;
  int user_ids_size() const;
  private:
  int _internal_user_ids_size() const;

  public:
  void clear_user_ids() ;
  const std::string& user_ids(int index) const;
  std::string* mutable_user_ids(int index);
  void set_user_ids(int index, const std::string& value);
  void set_user_ids(int index, std::string&& value);
  void set_user_ids(int index, const char* value);
  void set_user_ids(int index, const char* value, std::size_t size);
  void set_user_ids(int index, absl::string_view value);
  std::string* add_user_ids();
  void add_user_ids(const std::string& value);
  void add_user_ids(std::string&& value);
  void add_user_ids(const char* value);
  void add_user_ids(const char* value, std::size_t size);
  void add_user_ids(absl::string_view value);
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& user_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_user_ids();

  private:
  const std::string& _internal_user_ids(int index) const;
  std::string* _internal_add_user_ids();
  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& _internal_user_ids() const;
  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* _internal_mutable_user_ids();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupUserFilter)
 private:
  class _Internal;

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

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

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

  inline GetGroupUserListResponse& operator=(const GetGroupUserListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupUserListResponse& operator=(GetGroupUserListResponse&& 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 GetGroupUserListResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupUserListResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupUserListResponse*>(
               &_GetGroupUserListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    34;

  friend void swap(GetGroupUserListResponse& a, GetGroupUserListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupUserListResponse* 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(GetGroupUserListResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupUserListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupUserListResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupUserListResponse& from);
  void MergeFrom(const GetGroupUserListResponse& 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(GetGroupUserListResponse* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // .keyapis.access_management.v1.UserGroup data = 1;
  bool has_data() const;
  private:
  bool _internal_has_data() const;

  public:
  void clear_data() ;
  const ::keyapis::access_management::v1::UserGroup& data() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::UserGroup* release_data();
  ::keyapis::access_management::v1::UserGroup* mutable_data();
  void set_allocated_data(::keyapis::access_management::v1::UserGroup* data);
  private:
  const ::keyapis::access_management::v1::UserGroup& _internal_data() const;
  ::keyapis::access_management::v1::UserGroup* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::keyapis::access_management::v1::UserGroup* data);
  ::keyapis::access_management::v1::UserGroup* unsafe_arena_release_data();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupUserListResponse)
 private:
  class _Internal;
  void set_has_data();

  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::access_management::v1::UserGroup* data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupUserCountRequest& operator=(const GetGroupUserCountRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupUserCountRequest& operator=(GetGroupUserCountRequest&& 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 GetGroupUserCountRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGroupUserCountRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupUserCountRequest*>(
               &_GetGroupUserCountRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    35;

  friend void swap(GetGroupUserCountRequest& a, GetGroupUserCountRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupUserCountRequest* 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(GetGroupUserCountRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupUserCountRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupUserCountRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupUserCountRequest& from);
  void MergeFrom(const GetGroupUserCountRequest& 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(GetGroupUserCountRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
  };
  // .keyapis.access_management.v1.GroupUserFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupUserFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupUserFilter* release_filter();
  ::keyapis::access_management::v1::GroupUserFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupUserFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupUserFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupUserFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupUserFilter* filter);
  ::keyapis::access_management::v1::GroupUserFilter* unsafe_arena_release_filter();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupUserCountRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupUserFilter* filter_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupUserCountResponse& operator=(const GetGroupUserCountResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupUserCountResponse& operator=(GetGroupUserCountResponse&& 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 GetGroupUserCountResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupUserCountResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupUserCountResponse*>(
               &_GetGroupUserCountResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    36;

  friend void swap(GetGroupUserCountResponse& a, GetGroupUserCountResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupUserCountResponse* 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(GetGroupUserCountResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupUserCountResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupUserCountResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupUserCountResponse& from);
  void MergeFrom(const GetGroupUserCountResponse& 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(GetGroupUserCountResponse* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // int32 data = 1;
  bool has_data() const;
  void clear_data() ;
  ::int32_t data() const;
  void set_data(::int32_t value);

  private:
  ::int32_t _internal_data() const;
  void _internal_set_data(::int32_t value);

  public:
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupUserCountResponse)
 private:
  class _Internal;
  void set_has_data();

  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_;
      ::int32_t data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline PutGroupUserDetachResponse& operator=(const PutGroupUserDetachResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PutGroupUserDetachResponse& operator=(PutGroupUserDetachResponse&& 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 PutGroupUserDetachResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const PutGroupUserDetachResponse* internal_default_instance() {
    return reinterpret_cast<const PutGroupUserDetachResponse*>(
               &_PutGroupUserDetachResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    37;

  friend void swap(PutGroupUserDetachResponse& a, PutGroupUserDetachResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(PutGroupUserDetachResponse* 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(PutGroupUserDetachResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  PutGroupUserDetachResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<PutGroupUserDetachResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const PutGroupUserDetachResponse& from);
  void MergeFrom(const PutGroupUserDetachResponse& 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(PutGroupUserDetachResponse* other);

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

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.PutGroupUserDetachResponse)
 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_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupClaimCountRequest& operator=(const GetGroupClaimCountRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimCountRequest& operator=(GetGroupClaimCountRequest&& 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 GetGroupClaimCountRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGroupClaimCountRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimCountRequest*>(
               &_GetGroupClaimCountRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    38;

  friend void swap(GetGroupClaimCountRequest& a, GetGroupClaimCountRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimCountRequest* 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(GetGroupClaimCountRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimCountRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimCountRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimCountRequest& from);
  void MergeFrom(const GetGroupClaimCountRequest& 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(GetGroupClaimCountRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
  };
  // .keyapis.access_management.v1.GroupClaimFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupClaimFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupClaimFilter* release_filter();
  ::keyapis::access_management::v1::GroupClaimFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupClaimFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupClaimFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupClaimFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupClaimFilter* filter);
  ::keyapis::access_management::v1::GroupClaimFilter* unsafe_arena_release_filter();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimCountRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupClaimFilter* filter_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupClaimCountResponse& operator=(const GetGroupClaimCountResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimCountResponse& operator=(GetGroupClaimCountResponse&& 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 GetGroupClaimCountResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupClaimCountResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimCountResponse*>(
               &_GetGroupClaimCountResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    39;

  friend void swap(GetGroupClaimCountResponse& a, GetGroupClaimCountResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimCountResponse* 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(GetGroupClaimCountResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimCountResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimCountResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimCountResponse& from);
  void MergeFrom(const GetGroupClaimCountResponse& 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(GetGroupClaimCountResponse* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // int32 data = 1;
  bool has_data() const;
  void clear_data() ;
  ::int32_t data() const;
  void set_data(::int32_t value);

  private:
  ::int32_t _internal_data() const;
  void _internal_set_data(::int32_t value);

  public:
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimCountResponse)
 private:
  class _Internal;
  void set_has_data();

  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_;
      ::int32_t data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupClaimExistRequest& operator=(const GetGroupClaimExistRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimExistRequest& operator=(GetGroupClaimExistRequest&& 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 GetGroupClaimExistRequest& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGroupClaimExistRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimExistRequest*>(
               &_GetGroupClaimExistRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    40;

  friend void swap(GetGroupClaimExistRequest& a, GetGroupClaimExistRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimExistRequest* 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(GetGroupClaimExistRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimExistRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimExistRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimExistRequest& from);
  void MergeFrom(const GetGroupClaimExistRequest& 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(GetGroupClaimExistRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
  };
  // .keyapis.access_management.v1.GroupClaimFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupClaimFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupClaimFilter* release_filter();
  ::keyapis::access_management::v1::GroupClaimFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupClaimFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupClaimFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupClaimFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupClaimFilter* filter);
  ::keyapis::access_management::v1::GroupClaimFilter* unsafe_arena_release_filter();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimExistRequest)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupClaimFilter* filter_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& operator=(const GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& operator=(GetGroupClaimExistResponse_Error_ClaimFilterEmptyError&& 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 GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& default_instance() {
    return *internal_default_instance();
  }
  static inline const GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimExistResponse_Error_ClaimFilterEmptyError*>(
               &_GetGroupClaimExistResponse_Error_ClaimFilterEmptyError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    41;

  friend void swap(GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& a, GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* 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(GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimExistResponse_Error_ClaimFilterEmptyError>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& from);
  void MergeFrom(const GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& 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(GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* other);

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

  std::string GetTypeName() const final;

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

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

  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimExistResponse.Error.ClaimFilterEmptyError)
 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_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GetGroupClaimExistResponse_Error& operator=(const GetGroupClaimExistResponse_Error& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimExistResponse_Error& operator=(GetGroupClaimExistResponse_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 GetGroupClaimExistResponse_Error& default_instance() {
    return *internal_default_instance();
  }
  enum ReasonCase {
    kClaimFilterEmpty = 1,
    REASON_NOT_SET = 0,
  };

  static inline const GetGroupClaimExistResponse_Error* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimExistResponse_Error*>(
               &_GetGroupClaimExistResponse_Error_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    42;

  friend void swap(GetGroupClaimExistResponse_Error& a, GetGroupClaimExistResponse_Error& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimExistResponse_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(GetGroupClaimExistResponse_Error* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimExistResponse_Error* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimExistResponse_Error>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimExistResponse_Error& from);
  void MergeFrom(const GetGroupClaimExistResponse_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(GetGroupClaimExistResponse_Error* other);

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

  std::string GetTypeName() const final;

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

  typedef GetGroupClaimExistResponse_Error_ClaimFilterEmptyError ClaimFilterEmptyError;

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

  enum : int {
    kClaimFilterEmptyFieldNumber = 1,
  };
  // .keyapis.access_management.v1.GetGroupClaimExistResponse.Error.ClaimFilterEmptyError claim_filter_empty = 1;
  bool has_claim_filter_empty() const;
  private:
  bool _internal_has_claim_filter_empty() const;

  public:
  void clear_claim_filter_empty() ;
  const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& claim_filter_empty() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* release_claim_filter_empty();
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* mutable_claim_filter_empty();
  void set_allocated_claim_filter_empty(::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* claim_filter_empty);
  private:
  const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& _internal_claim_filter_empty() const;
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* _internal_mutable_claim_filter_empty();
  public:
  void unsafe_arena_set_allocated_claim_filter_empty(
      ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* claim_filter_empty);
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* unsafe_arena_release_claim_filter_empty();
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimExistResponse.Error)
 private:
  class _Internal;
  void set_has_claim_filter_empty();

  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::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* claim_filter_empty_;
    } reason_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupClaimExistResponse& operator=(const GetGroupClaimExistResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimExistResponse& operator=(GetGroupClaimExistResponse&& 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 GetGroupClaimExistResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    kError = 2,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupClaimExistResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimExistResponse*>(
               &_GetGroupClaimExistResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    43;

  friend void swap(GetGroupClaimExistResponse& a, GetGroupClaimExistResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimExistResponse* 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(GetGroupClaimExistResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimExistResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimExistResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimExistResponse& from);
  void MergeFrom(const GetGroupClaimExistResponse& 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(GetGroupClaimExistResponse* other);

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

  std::string GetTypeName() const final;

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

  typedef GetGroupClaimExistResponse_Error Error;

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

  enum : int {
    kDataFieldNumber = 1,
    kErrorFieldNumber = 2,
  };
  // bool data = 1;
  bool has_data() const;
  void clear_data() ;
  bool data() const;
  void set_data(bool value);

  private:
  bool _internal_data() const;
  void _internal_set_data(bool value);

  public:
  // .keyapis.access_management.v1.GetGroupClaimExistResponse.Error error = 2;
  bool has_error() const;
  private:
  bool _internal_has_error() const;

  public:
  void clear_error() ;
  const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error& error() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* release_error();
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* mutable_error();
  void set_allocated_error(::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* error);
  private:
  const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error& _internal_error() const;
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* error);
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* unsafe_arena_release_error();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimExistResponse)
 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_;
      bool data_;
      ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* error_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupClaimListRequest& operator=(const GetGroupClaimListRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimListRequest& operator=(GetGroupClaimListRequest&& 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 GetGroupClaimListRequest& default_instance() {
    return *internal_default_instance();
  }
  enum PaginationCase {
    kPaging = 2,
    PAGINATION_NOT_SET = 0,
  };

  static inline const GetGroupClaimListRequest* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimListRequest*>(
               &_GetGroupClaimListRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    44;

  friend void swap(GetGroupClaimListRequest& a, GetGroupClaimListRequest& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimListRequest* 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(GetGroupClaimListRequest* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimListRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimListRequest>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimListRequest& from);
  void MergeFrom(const GetGroupClaimListRequest& 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(GetGroupClaimListRequest* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kFilterFieldNumber = 1,
    kPagingFieldNumber = 2,
  };
  // .keyapis.access_management.v1.GroupClaimFilter filter = 1;
  bool has_filter() const;
  void clear_filter() ;
  const ::keyapis::access_management::v1::GroupClaimFilter& filter() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupClaimFilter* release_filter();
  ::keyapis::access_management::v1::GroupClaimFilter* mutable_filter();
  void set_allocated_filter(::keyapis::access_management::v1::GroupClaimFilter* filter);
  private:
  const ::keyapis::access_management::v1::GroupClaimFilter& _internal_filter() const;
  ::keyapis::access_management::v1::GroupClaimFilter* _internal_mutable_filter();
  public:
  void unsafe_arena_set_allocated_filter(
      ::keyapis::access_management::v1::GroupClaimFilter* filter);
  ::keyapis::access_management::v1::GroupClaimFilter* unsafe_arena_release_filter();
  // .keyapis.access_management.v1.GroupClaimPaging paging = 2;
  bool has_paging() const;
  private:
  bool _internal_has_paging() const;

  public:
  void clear_paging() ;
  const ::keyapis::access_management::v1::GroupClaimPaging& paging() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupClaimPaging* release_paging();
  ::keyapis::access_management::v1::GroupClaimPaging* mutable_paging();
  void set_allocated_paging(::keyapis::access_management::v1::GroupClaimPaging* paging);
  private:
  const ::keyapis::access_management::v1::GroupClaimPaging& _internal_paging() const;
  ::keyapis::access_management::v1::GroupClaimPaging* _internal_mutable_paging();
  public:
  void unsafe_arena_set_allocated_paging(
      ::keyapis::access_management::v1::GroupClaimPaging* paging);
  ::keyapis::access_management::v1::GroupClaimPaging* unsafe_arena_release_paging();
  void clear_pagination();
  PaginationCase pagination_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimListRequest)
 private:
  class _Internal;
  void set_has_paging();

  inline bool has_pagination() const;
  inline void clear_has_pagination();

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::keyapis::access_management::v1::GroupClaimFilter* filter_;
    union PaginationUnion {
      constexpr PaginationUnion() : _constinit_{} {}
        ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_;
      ::keyapis::access_management::v1::GroupClaimPaging* paging_;
    } pagination_;
    ::uint32_t _oneof_case_[1];

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

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

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

  inline GetGroupClaimListResponse& operator=(const GetGroupClaimListResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetGroupClaimListResponse& operator=(GetGroupClaimListResponse&& 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 GetGroupClaimListResponse& default_instance() {
    return *internal_default_instance();
  }
  enum TypeCase {
    kData = 1,
    TYPE_NOT_SET = 0,
  };

  static inline const GetGroupClaimListResponse* internal_default_instance() {
    return reinterpret_cast<const GetGroupClaimListResponse*>(
               &_GetGroupClaimListResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    45;

  friend void swap(GetGroupClaimListResponse& a, GetGroupClaimListResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(GetGroupClaimListResponse* 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(GetGroupClaimListResponse* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GetGroupClaimListResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GetGroupClaimListResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GetGroupClaimListResponse& from);
  void MergeFrom(const GetGroupClaimListResponse& 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(GetGroupClaimListResponse* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kDataFieldNumber = 1,
  };
  // .keyapis.access_management.v1.Claim data = 1;
  bool has_data() const;
  private:
  bool _internal_has_data() const;

  public:
  void clear_data() ;
  const ::keyapis::access_management::v1::Claim& data() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::Claim* release_data();
  ::keyapis::access_management::v1::Claim* mutable_data();
  void set_allocated_data(::keyapis::access_management::v1::Claim* data);
  private:
  const ::keyapis::access_management::v1::Claim& _internal_data() const;
  ::keyapis::access_management::v1::Claim* _internal_mutable_data();
  public:
  void unsafe_arena_set_allocated_data(
      ::keyapis::access_management::v1::Claim* data);
  ::keyapis::access_management::v1::Claim* unsafe_arena_release_data();
  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GetGroupClaimListResponse)
 private:
  class _Internal;
  void set_has_data();

  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::access_management::v1::Claim* data_;
    } type_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::uint32_t _oneof_case_[1];

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

class GroupClaimFilter_ClaimsEntry_DoNotUse final : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupClaimFilter_ClaimsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupClaimFilter_ClaimsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> SuperType;
  GroupClaimFilter_ClaimsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR GroupClaimFilter_ClaimsEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit GroupClaimFilter_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const GroupClaimFilter_ClaimsEntry_DoNotUse& other);
  static const GroupClaimFilter_ClaimsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const GroupClaimFilter_ClaimsEntry_DoNotUse*>(&_GroupClaimFilter_ClaimsEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupClaimFilter.ClaimsEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupClaimFilter.ClaimsEntry.value");
 }
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};
// -------------------------------------------------------------------

class GroupClaimFilter_UserData_ClaimsEntry_DoNotUse final : public ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupClaimFilter_UserData_ClaimsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> {
public:
  typedef ::PROTOBUF_NAMESPACE_ID::internal::MapEntryLite<GroupClaimFilter_UserData_ClaimsEntry_DoNotUse, 
    std::string, std::string,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> SuperType;
  GroupClaimFilter_UserData_ClaimsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR GroupClaimFilter_UserData_ClaimsEntry_DoNotUse(
      ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  explicit GroupClaimFilter_UserData_ClaimsEntry_DoNotUse(::PROTOBUF_NAMESPACE_ID::Arena* arena);
  void MergeFrom(const GroupClaimFilter_UserData_ClaimsEntry_DoNotUse& other);
  static const GroupClaimFilter_UserData_ClaimsEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const GroupClaimFilter_UserData_ClaimsEntry_DoNotUse*>(&_GroupClaimFilter_UserData_ClaimsEntry_DoNotUse_default_instance_); }
  static bool ValidateKey(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupClaimFilter.UserData.ClaimsEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE, "keyapis.access_management.v1.GroupClaimFilter.UserData.ClaimsEntry.value");
 }
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};
// -------------------------------------------------------------------

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

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

  inline GroupClaimFilter_UserData& operator=(const GroupClaimFilter_UserData& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupClaimFilter_UserData& operator=(GroupClaimFilter_UserData&& 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 GroupClaimFilter_UserData& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupClaimFilter_UserData* internal_default_instance() {
    return reinterpret_cast<const GroupClaimFilter_UserData*>(
               &_GroupClaimFilter_UserData_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    48;

  friend void swap(GroupClaimFilter_UserData& a, GroupClaimFilter_UserData& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupClaimFilter_UserData* 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(GroupClaimFilter_UserData* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupClaimFilter_UserData* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupClaimFilter_UserData>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupClaimFilter_UserData& from);
  void MergeFrom(const GroupClaimFilter_UserData& 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(GroupClaimFilter_UserData* other);

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

  std::string GetTypeName() const final;

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


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

  enum : int {
    kClaimsFieldNumber = 1,
  };
  // map<string, string> claims = 1;
  int claims_size() const;
  private:
  int _internal_claims_size() const;

  public:
  void clear_claims() ;
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      _internal_claims() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      _internal_mutable_claims();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      claims() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      mutable_claims();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupClaimFilter.UserData)
 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::MapFieldLite<
        GroupClaimFilter_UserData_ClaimsEntry_DoNotUse,
        std::string, std::string,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> claims_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GroupClaimFilter& operator=(const GroupClaimFilter& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupClaimFilter& operator=(GroupClaimFilter&& 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 GroupClaimFilter& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupClaimFilter* internal_default_instance() {
    return reinterpret_cast<const GroupClaimFilter*>(
               &_GroupClaimFilter_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    49;

  friend void swap(GroupClaimFilter& a, GroupClaimFilter& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupClaimFilter* 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(GroupClaimFilter* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupClaimFilter* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupClaimFilter>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupClaimFilter& from);
  void MergeFrom(const GroupClaimFilter& 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(GroupClaimFilter* other);

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

  std::string GetTypeName() const final;

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

  typedef GroupClaimFilter_UserData UserData;

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

  enum : int {
    kClaimsFieldNumber = 2,
    kApiKeyHashFieldNumber = 4,
    kUserIdFieldNumber = 1,
    kUserDataFieldNumber = 3,
  };
  // map<string, string> claims = 2;
  int claims_size() const;
  private:
  int _internal_claims_size() const;

  public:
  void clear_claims() ;
  private:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      _internal_claims() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      _internal_mutable_claims();
  public:
  const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
      claims() const;
  ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
      mutable_claims();
  // string api_key_hash = 4;
  void clear_api_key_hash() ;
  const std::string& api_key_hash() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_api_key_hash(Arg_&& arg, Args_... args);
  std::string* mutable_api_key_hash();
  PROTOBUF_NODISCARD std::string* release_api_key_hash();
  void set_allocated_api_key_hash(std::string* ptr);

  private:
  const std::string& _internal_api_key_hash() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_api_key_hash(
      const std::string& value);
  std::string* _internal_mutable_api_key_hash();

  public:
  // .google.protobuf.StringValue user_id = 1;
  bool has_user_id() const;
  void clear_user_id() ;
  const ::PROTOBUF_NAMESPACE_ID::StringValue& user_id() const;
  PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::StringValue* release_user_id();
  ::PROTOBUF_NAMESPACE_ID::StringValue* mutable_user_id();
  void set_allocated_user_id(::PROTOBUF_NAMESPACE_ID::StringValue* user_id);
  private:
  const ::PROTOBUF_NAMESPACE_ID::StringValue& _internal_user_id() const;
  ::PROTOBUF_NAMESPACE_ID::StringValue* _internal_mutable_user_id();
  public:
  void unsafe_arena_set_allocated_user_id(
      ::PROTOBUF_NAMESPACE_ID::StringValue* user_id);
  ::PROTOBUF_NAMESPACE_ID::StringValue* unsafe_arena_release_user_id();
  // .keyapis.access_management.v1.GroupClaimFilter.UserData user_data = 3;
  bool has_user_data() const;
  void clear_user_data() ;
  const ::keyapis::access_management::v1::GroupClaimFilter_UserData& user_data() const;
  PROTOBUF_NODISCARD ::keyapis::access_management::v1::GroupClaimFilter_UserData* release_user_data();
  ::keyapis::access_management::v1::GroupClaimFilter_UserData* mutable_user_data();
  void set_allocated_user_data(::keyapis::access_management::v1::GroupClaimFilter_UserData* user_data);
  private:
  const ::keyapis::access_management::v1::GroupClaimFilter_UserData& _internal_user_data() const;
  ::keyapis::access_management::v1::GroupClaimFilter_UserData* _internal_mutable_user_data();
  public:
  void unsafe_arena_set_allocated_user_data(
      ::keyapis::access_management::v1::GroupClaimFilter_UserData* user_data);
  ::keyapis::access_management::v1::GroupClaimFilter_UserData* unsafe_arena_release_user_data();
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupClaimFilter)
 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::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::MapFieldLite<
        GroupClaimFilter_ClaimsEntry_DoNotUse,
        std::string, std::string,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING,
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_STRING> claims_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr api_key_hash_;
    ::PROTOBUF_NAMESPACE_ID::StringValue* user_id_;
    ::keyapis::access_management::v1::GroupClaimFilter_UserData* user_data_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GroupClaimPaging& operator=(const GroupClaimPaging& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupClaimPaging& operator=(GroupClaimPaging&& 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 GroupClaimPaging& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupClaimPaging* internal_default_instance() {
    return reinterpret_cast<const GroupClaimPaging*>(
               &_GroupClaimPaging_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    50;

  friend void swap(GroupClaimPaging& a, GroupClaimPaging& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupClaimPaging* 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(GroupClaimPaging* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupClaimPaging* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupClaimPaging>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupClaimPaging& from);
  void MergeFrom(const GroupClaimPaging& 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(GroupClaimPaging* other);

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

  std::string GetTypeName() const final;

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

  using OrderByType = GroupClaimPaging_OrderByType;
  static constexpr OrderByType ORDER_BY_TYPE_UNKNOWN = GroupClaimPaging_OrderByType_ORDER_BY_TYPE_UNKNOWN;
  static constexpr OrderByType KEY = GroupClaimPaging_OrderByType_KEY;
  static constexpr OrderByType VALUE = GroupClaimPaging_OrderByType_VALUE;
  static inline bool OrderByType_IsValid(int value) {
    return GroupClaimPaging_OrderByType_IsValid(value);
  }
  static constexpr OrderByType OrderByType_MIN = GroupClaimPaging_OrderByType_OrderByType_MIN;
  static constexpr OrderByType OrderByType_MAX = GroupClaimPaging_OrderByType_OrderByType_MAX;
  static constexpr int OrderByType_ARRAYSIZE = GroupClaimPaging_OrderByType_OrderByType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& OrderByType_Name(T value) {
    return GroupClaimPaging_OrderByType_Name(value);
  }
  static inline bool OrderByType_Parse(absl::string_view name, OrderByType* value) {
    return GroupClaimPaging_OrderByType_Parse(name, value);
  }

  using DirectionType = GroupClaimPaging_DirectionType;
  static constexpr DirectionType DIRECTION_TYPE_UNKNOWN = GroupClaimPaging_DirectionType_DIRECTION_TYPE_UNKNOWN;
  static constexpr DirectionType DESC = GroupClaimPaging_DirectionType_DESC;
  static constexpr DirectionType ASC = GroupClaimPaging_DirectionType_ASC;
  static inline bool DirectionType_IsValid(int value) {
    return GroupClaimPaging_DirectionType_IsValid(value);
  }
  static constexpr DirectionType DirectionType_MIN = GroupClaimPaging_DirectionType_DirectionType_MIN;
  static constexpr DirectionType DirectionType_MAX = GroupClaimPaging_DirectionType_DirectionType_MAX;
  static constexpr int DirectionType_ARRAYSIZE = GroupClaimPaging_DirectionType_DirectionType_ARRAYSIZE;
  template <typename T>
  static inline const std::string& DirectionType_Name(T value) {
    return GroupClaimPaging_DirectionType_Name(value);
  }
  static inline bool DirectionType_Parse(absl::string_view name, DirectionType* value) {
    return GroupClaimPaging_DirectionType_Parse(name, value);
  }

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

  enum : int {
    kOrderByTypeFieldNumber = 1,
    kDirectionTypeFieldNumber = 2,
    kLimitFieldNumber = 3,
    kOffsetFieldNumber = 4,
  };
  // .keyapis.access_management.v1.GroupClaimPaging.OrderByType order_by_type = 1;
  void clear_order_by_type() ;
  ::keyapis::access_management::v1::GroupClaimPaging_OrderByType order_by_type() const;
  void set_order_by_type(::keyapis::access_management::v1::GroupClaimPaging_OrderByType value);

  private:
  ::keyapis::access_management::v1::GroupClaimPaging_OrderByType _internal_order_by_type() const;
  void _internal_set_order_by_type(::keyapis::access_management::v1::GroupClaimPaging_OrderByType value);

  public:
  // .keyapis.access_management.v1.GroupClaimPaging.DirectionType direction_type = 2;
  void clear_direction_type() ;
  ::keyapis::access_management::v1::GroupClaimPaging_DirectionType direction_type() const;
  void set_direction_type(::keyapis::access_management::v1::GroupClaimPaging_DirectionType value);

  private:
  ::keyapis::access_management::v1::GroupClaimPaging_DirectionType _internal_direction_type() const;
  void _internal_set_direction_type(::keyapis::access_management::v1::GroupClaimPaging_DirectionType value);

  public:
  // int32 limit = 3;
  void clear_limit() ;
  ::int32_t limit() const;
  void set_limit(::int32_t value);

  private:
  ::int32_t _internal_limit() const;
  void _internal_set_limit(::int32_t value);

  public:
  // int32 offset = 4;
  void clear_offset() ;
  ::int32_t offset() const;
  void set_offset(::int32_t value);

  private:
  ::int32_t _internal_offset() const;
  void _internal_set_offset(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupClaimPaging)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    int order_by_type_;
    int direction_type_;
    ::int32_t limit_;
    ::int32_t offset_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline ValidationError& operator=(const ValidationError& from) {
    CopyFrom(from);
    return *this;
  }
  inline ValidationError& operator=(ValidationError&& 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 ValidationError& default_instance() {
    return *internal_default_instance();
  }
  static inline const ValidationError* internal_default_instance() {
    return reinterpret_cast<const ValidationError*>(
               &_ValidationError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    51;

  friend void swap(ValidationError& a, ValidationError& b) {
    a.Swap(&b);
  }
  inline void Swap(ValidationError* 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(ValidationError* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  ValidationError* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<ValidationError>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const ValidationError& from);
  void MergeFrom(const ValidationError& 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(ValidationError* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kPathFieldNumber = 1,
    kMessageFieldNumber = 2,
  };
  // string path = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_path() ;
  const std::string& path() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_path(Arg_&& arg, Args_... args);
  std::string* mutable_path();
  PROTOBUF_NODISCARD std::string* release_path();
  void set_allocated_path(std::string* ptr);

  private:
  const std::string& _internal_path() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_path(
      const std::string& value);
  std::string* _internal_mutable_path();

  public:
  // string message = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_message() ;
  const std::string& message() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_message(Arg_&& arg, Args_... args);
  std::string* mutable_message();
  PROTOBUF_NODISCARD std::string* release_message();
  void set_allocated_message(std::string* ptr);

  private:
  const std::string& _internal_message() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_message(
      const std::string& value);
  std::string* _internal_mutable_message();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.ValidationError)
 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 path_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr message_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};// -------------------------------------------------------------------

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

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

  inline GroupTemplateNotFoundError& operator=(const GroupTemplateNotFoundError& from) {
    CopyFrom(from);
    return *this;
  }
  inline GroupTemplateNotFoundError& operator=(GroupTemplateNotFoundError&& 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 GroupTemplateNotFoundError& default_instance() {
    return *internal_default_instance();
  }
  static inline const GroupTemplateNotFoundError* internal_default_instance() {
    return reinterpret_cast<const GroupTemplateNotFoundError*>(
               &_GroupTemplateNotFoundError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    52;

  friend void swap(GroupTemplateNotFoundError& a, GroupTemplateNotFoundError& b) {
    a.Swap(&b);
  }
  inline void Swap(GroupTemplateNotFoundError* 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(GroupTemplateNotFoundError* other) {
    if (other == this) return;
    ABSL_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

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

  GroupTemplateNotFoundError* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<GroupTemplateNotFoundError>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const GroupTemplateNotFoundError& from);
  void MergeFrom(const GroupTemplateNotFoundError& 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(GroupTemplateNotFoundError* other);

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

  std::string GetTypeName() const final;

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

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

  enum : int {
    kGroupTemplateIdFieldNumber = 1,
    kMessageFieldNumber = 2,
  };
  // string group_template_id = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_group_template_id() ;
  const std::string& group_template_id() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_group_template_id(Arg_&& arg, Args_... args);
  std::string* mutable_group_template_id();
  PROTOBUF_NODISCARD std::string* release_group_template_id();
  void set_allocated_group_template_id(std::string* ptr);

  private:
  const std::string& _internal_group_template_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_group_template_id(
      const std::string& value);
  std::string* _internal_mutable_group_template_id();

  public:
  // string message = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_message() ;
  const std::string& message() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_message(Arg_&& arg, Args_... args);
  std::string* mutable_message();
  PROTOBUF_NODISCARD std::string* release_message();
  void set_allocated_message(std::string* ptr);

  private:
  const std::string& _internal_message() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_message(
      const std::string& value);
  std::string* _internal_mutable_message();

  public:
  // @@protoc_insertion_point(class_scope:keyapis.access_management.v1.GroupTemplateNotFoundError)
 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 group_template_id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr message_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto;
};

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




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


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

// PutGroupApiKeyCreateRequest

// string group_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void PutGroupApiKeyCreateRequest::clear_group_id() {
  _impl_.group_id_.ClearToEmpty();
}
inline const std::string& PutGroupApiKeyCreateRequest::group_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PutGroupApiKeyCreateRequest.group_id)
  return _internal_group_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PutGroupApiKeyCreateRequest::set_group_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.group_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.PutGroupApiKeyCreateRequest.group_id)
}
inline std::string* PutGroupApiKeyCreateRequest::mutable_group_id() {
  std::string* _s = _internal_mutable_group_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PutGroupApiKeyCreateRequest.group_id)
  return _s;
}
inline const std::string& PutGroupApiKeyCreateRequest::_internal_group_id() const {
  return _impl_.group_id_.Get();
}
inline void PutGroupApiKeyCreateRequest::_internal_set_group_id(const std::string& value) {
  ;


  _impl_.group_id_.Set(value, GetArenaForAllocation());
}
inline std::string* PutGroupApiKeyCreateRequest::_internal_mutable_group_id() {
  ;
  return _impl_.group_id_.Mutable( GetArenaForAllocation());
}
inline std::string* PutGroupApiKeyCreateRequest::release_group_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PutGroupApiKeyCreateRequest.group_id)
  return _impl_.group_id_.Release();
}
inline void PutGroupApiKeyCreateRequest::set_allocated_group_id(std::string* value) {
  _impl_.group_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.group_id_.IsDefault()) {
          _impl_.group_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PutGroupApiKeyCreateRequest.group_id)
}

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

// PutGroupApiKeyCreateResponse

// string data = 1;
inline bool PutGroupApiKeyCreateResponse::has_data() const {
  return type_case() == kData;
}
inline void PutGroupApiKeyCreateResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void PutGroupApiKeyCreateResponse::clear_data() {
  if (type_case() == kData) {
    _impl_.type_.data_.Destroy();
    clear_has_type();
  }
}
inline const std::string& PutGroupApiKeyCreateResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PutGroupApiKeyCreateResponse.data)
  return _internal_data();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PutGroupApiKeyCreateResponse::set_data(Arg_&& arg,
                                                     Args_... args) {
  if (type_case() != kData) {
    clear_type();

    set_has_data();
    _impl_.type_.data_.InitDefault();
  }
  _impl_.type_.data_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.PutGroupApiKeyCreateResponse.data)
}
inline std::string* PutGroupApiKeyCreateResponse::mutable_data() {
  std::string* _s = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PutGroupApiKeyCreateResponse.data)
  return _s;
}
inline const std::string& PutGroupApiKeyCreateResponse::_internal_data() const {
  if (type_case() != kData) {
    return ::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited();
  }
  return _impl_.type_.data_.Get();
}
inline void PutGroupApiKeyCreateResponse::_internal_set_data(const std::string& value) {
  if (type_case() != kData) {
    clear_type();

    set_has_data();
    _impl_.type_.data_.InitDefault();
  }


  _impl_.type_.data_.Set(value, GetArenaForAllocation());
}
inline std::string* PutGroupApiKeyCreateResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();

    set_has_data();
    _impl_.type_.data_.InitDefault();
  }
  return _impl_.type_.data_.Mutable( GetArenaForAllocation());
}
inline std::string* PutGroupApiKeyCreateResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PutGroupApiKeyCreateResponse.data)
  if (type_case() != kData) {
    return nullptr;
  }
  clear_has_type();
  return _impl_.type_.data_.Release();
}
inline void PutGroupApiKeyCreateResponse::set_allocated_data(std::string* value) {
  if (has_type()) {
    clear_type();
  }
  if (value != nullptr) {
    set_has_data();
    _impl_.type_.data_.InitAllocated(value, GetArenaForAllocation());
  }
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PutGroupApiKeyCreateResponse.data)
}

inline bool PutGroupApiKeyCreateResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void PutGroupApiKeyCreateResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline PutGroupApiKeyCreateResponse::TypeCase PutGroupApiKeyCreateResponse::type_case() const {
  return PutGroupApiKeyCreateResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// PutGroupApiKeyDeleteRequest

// string group_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void PutGroupApiKeyDeleteRequest::clear_group_id() {
  _impl_.group_id_.ClearToEmpty();
}
inline const std::string& PutGroupApiKeyDeleteRequest::group_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PutGroupApiKeyDeleteRequest.group_id)
  return _internal_group_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PutGroupApiKeyDeleteRequest::set_group_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.group_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.PutGroupApiKeyDeleteRequest.group_id)
}
inline std::string* PutGroupApiKeyDeleteRequest::mutable_group_id() {
  std::string* _s = _internal_mutable_group_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PutGroupApiKeyDeleteRequest.group_id)
  return _s;
}
inline const std::string& PutGroupApiKeyDeleteRequest::_internal_group_id() const {
  return _impl_.group_id_.Get();
}
inline void PutGroupApiKeyDeleteRequest::_internal_set_group_id(const std::string& value) {
  ;


  _impl_.group_id_.Set(value, GetArenaForAllocation());
}
inline std::string* PutGroupApiKeyDeleteRequest::_internal_mutable_group_id() {
  ;
  return _impl_.group_id_.Mutable( GetArenaForAllocation());
}
inline std::string* PutGroupApiKeyDeleteRequest::release_group_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PutGroupApiKeyDeleteRequest.group_id)
  return _impl_.group_id_.Release();
}
inline void PutGroupApiKeyDeleteRequest::set_allocated_group_id(std::string* value) {
  _impl_.group_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.group_id_.IsDefault()) {
          _impl_.group_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PutGroupApiKeyDeleteRequest.group_id)
}

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

// PutGroupApiKeyDeleteResponse

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

// Claim

// string key = 1 [(.google.api.field_behavior) = REQUIRED];
inline void Claim::clear_key() {
  _impl_.key_.ClearToEmpty();
}
inline const std::string& Claim::key() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Claim.key)
  return _internal_key();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Claim::set_key(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.key_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Claim.key)
}
inline std::string* Claim::mutable_key() {
  std::string* _s = _internal_mutable_key();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Claim.key)
  return _s;
}
inline const std::string& Claim::_internal_key() const {
  return _impl_.key_.Get();
}
inline void Claim::_internal_set_key(const std::string& value) {
  ;


  _impl_.key_.Set(value, GetArenaForAllocation());
}
inline std::string* Claim::_internal_mutable_key() {
  ;
  return _impl_.key_.Mutable( GetArenaForAllocation());
}
inline std::string* Claim::release_key() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.Claim.key)
  return _impl_.key_.Release();
}
inline void Claim::set_allocated_key(std::string* value) {
  _impl_.key_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.key_.IsDefault()) {
          _impl_.key_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.Claim.key)
}

// string value = 2;
inline void Claim::clear_value() {
  _impl_.value_.ClearToEmpty();
}
inline const std::string& Claim::value() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Claim.value)
  return _internal_value();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Claim::set_value(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.value_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Claim.value)
}
inline std::string* Claim::mutable_value() {
  std::string* _s = _internal_mutable_value();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Claim.value)
  return _s;
}
inline const std::string& Claim::_internal_value() const {
  return _impl_.value_.Get();
}
inline void Claim::_internal_set_value(const std::string& value) {
  ;


  _impl_.value_.Set(value, GetArenaForAllocation());
}
inline std::string* Claim::_internal_mutable_value() {
  ;
  return _impl_.value_.Mutable( GetArenaForAllocation());
}
inline std::string* Claim::release_value() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.Claim.value)
  return _impl_.value_.Release();
}
inline void Claim::set_allocated_value(std::string* value) {
  _impl_.value_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.value_.IsDefault()) {
          _impl_.value_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.Claim.value)
}

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

// UserGroup

// string user_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void UserGroup::clear_user_id() {
  _impl_.user_id_.ClearToEmpty();
}
inline const std::string& UserGroup::user_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.UserGroup.user_id)
  return _internal_user_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void UserGroup::set_user_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.user_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.UserGroup.user_id)
}
inline std::string* UserGroup::mutable_user_id() {
  std::string* _s = _internal_mutable_user_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.UserGroup.user_id)
  return _s;
}
inline const std::string& UserGroup::_internal_user_id() const {
  return _impl_.user_id_.Get();
}
inline void UserGroup::_internal_set_user_id(const std::string& value) {
  ;


  _impl_.user_id_.Set(value, GetArenaForAllocation());
}
inline std::string* UserGroup::_internal_mutable_user_id() {
  ;
  return _impl_.user_id_.Mutable( GetArenaForAllocation());
}
inline std::string* UserGroup::release_user_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.UserGroup.user_id)
  return _impl_.user_id_.Release();
}
inline void UserGroup::set_allocated_user_id(std::string* value) {
  _impl_.user_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.user_id_.IsDefault()) {
          _impl_.user_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.UserGroup.user_id)
}

// string group_id = 2 [(.google.api.field_behavior) = REQUIRED];
inline void UserGroup::clear_group_id() {
  _impl_.group_id_.ClearToEmpty();
}
inline const std::string& UserGroup::group_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.UserGroup.group_id)
  return _internal_group_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void UserGroup::set_group_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.group_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.UserGroup.group_id)
}
inline std::string* UserGroup::mutable_group_id() {
  std::string* _s = _internal_mutable_group_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.UserGroup.group_id)
  return _s;
}
inline const std::string& UserGroup::_internal_group_id() const {
  return _impl_.group_id_.Get();
}
inline void UserGroup::_internal_set_group_id(const std::string& value) {
  ;


  _impl_.group_id_.Set(value, GetArenaForAllocation());
}
inline std::string* UserGroup::_internal_mutable_group_id() {
  ;
  return _impl_.group_id_.Mutable( GetArenaForAllocation());
}
inline std::string* UserGroup::release_group_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.UserGroup.group_id)
  return _impl_.group_id_.Release();
}
inline void UserGroup::set_allocated_group_id(std::string* value) {
  _impl_.group_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.group_id_.IsDefault()) {
          _impl_.group_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.UserGroup.group_id)
}

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

// Group

// string id = 1;
inline void Group::clear_id() {
  _impl_.id_.ClearToEmpty();
}
inline const std::string& Group::id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Group::set_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Group.id)
}
inline std::string* Group::mutable_id() {
  std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.id)
  return _s;
}
inline const std::string& Group::_internal_id() const {
  return _impl_.id_.Get();
}
inline void Group::_internal_set_id(const std::string& value) {
  ;


  _impl_.id_.Set(value, GetArenaForAllocation());
}
inline std::string* Group::_internal_mutable_id() {
  ;
  return _impl_.id_.Mutable( GetArenaForAllocation());
}
inline std::string* Group::release_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.Group.id)
  return _impl_.id_.Release();
}
inline void Group::set_allocated_id(std::string* value) {
  _impl_.id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.id_.IsDefault()) {
          _impl_.id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.Group.id)
}

// string title = 2 [(.google.api.field_behavior) = REQUIRED];
inline void Group::clear_title() {
  _impl_.title_.ClearToEmpty();
}
inline const std::string& Group::title() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.title)
  return _internal_title();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Group::set_title(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.title_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Group.title)
}
inline std::string* Group::mutable_title() {
  std::string* _s = _internal_mutable_title();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.title)
  return _s;
}
inline const std::string& Group::_internal_title() const {
  return _impl_.title_.Get();
}
inline void Group::_internal_set_title(const std::string& value) {
  ;


  _impl_.title_.Set(value, GetArenaForAllocation());
}
inline std::string* Group::_internal_mutable_title() {
  ;
  return _impl_.title_.Mutable( GetArenaForAllocation());
}
inline std::string* Group::release_title() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.Group.title)
  return _impl_.title_.Release();
}
inline void Group::set_allocated_title(std::string* value) {
  _impl_.title_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.title_.IsDefault()) {
          _impl_.title_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.Group.title)
}

// string description = 3;
inline void Group::clear_description() {
  _impl_.description_.ClearToEmpty();
}
inline const std::string& Group::description() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Group::set_description(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Group.description)
}
inline std::string* Group::mutable_description() {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.description)
  return _s;
}
inline const std::string& Group::_internal_description() const {
  return _impl_.description_.Get();
}
inline void Group::_internal_set_description(const std::string& value) {
  ;


  _impl_.description_.Set(value, GetArenaForAllocation());
}
inline std::string* Group::_internal_mutable_description() {
  ;
  return _impl_.description_.Mutable( GetArenaForAllocation());
}
inline std::string* Group::release_description() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.Group.description)
  return _impl_.description_.Release();
}
inline void Group::set_allocated_description(std::string* value) {
  _impl_.description_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.Group.description)
}

// repeated .keyapis.access_management.v1.Claim claims = 4;
inline int Group::_internal_claims_size() const {
  return _impl_.claims_.size();
}
inline int Group::claims_size() const {
  return _internal_claims_size();
}
inline void Group::clear_claims() {
  _internal_mutable_claims()->Clear();
}
inline ::keyapis::access_management::v1::Claim* Group::mutable_claims(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.claims)
  return _internal_mutable_claims()->Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >*
Group::mutable_claims() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.Group.claims)
  return _internal_mutable_claims();
}
inline const ::keyapis::access_management::v1::Claim& Group::_internal_claims(int index) const {
  return _internal_claims().Get(index);
}
inline const ::keyapis::access_management::v1::Claim& Group::claims(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.claims)
  return _internal_claims(index);
}
inline ::keyapis::access_management::v1::Claim* Group::_internal_add_claims() {
  return _internal_mutable_claims()->Add();
}
inline ::keyapis::access_management::v1::Claim* Group::add_claims() {
  ::keyapis::access_management::v1::Claim* _add = _internal_add_claims();
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.Group.claims)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >&
Group::claims() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.Group.claims)
  return _internal_claims();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>&
Group::_internal_claims() const {
  return _impl_.claims_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>*
Group::_internal_mutable_claims() {
  return &_impl_.claims_;
}

// repeated .keyapis.access_management.v1.Claim requirements = 5;
inline int Group::_internal_requirements_size() const {
  return _impl_.requirements_.size();
}
inline int Group::requirements_size() const {
  return _internal_requirements_size();
}
inline void Group::clear_requirements() {
  _internal_mutable_requirements()->Clear();
}
inline ::keyapis::access_management::v1::Claim* Group::mutable_requirements(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.requirements)
  return _internal_mutable_requirements()->Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >*
Group::mutable_requirements() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.Group.requirements)
  return _internal_mutable_requirements();
}
inline const ::keyapis::access_management::v1::Claim& Group::_internal_requirements(int index) const {
  return _internal_requirements().Get(index);
}
inline const ::keyapis::access_management::v1::Claim& Group::requirements(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.requirements)
  return _internal_requirements(index);
}
inline ::keyapis::access_management::v1::Claim* Group::_internal_add_requirements() {
  return _internal_mutable_requirements()->Add();
}
inline ::keyapis::access_management::v1::Claim* Group::add_requirements() {
  ::keyapis::access_management::v1::Claim* _add = _internal_add_requirements();
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.Group.requirements)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >&
Group::requirements() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.Group.requirements)
  return _internal_requirements();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>&
Group::_internal_requirements() const {
  return _impl_.requirements_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>*
Group::_internal_mutable_requirements() {
  return &_impl_.requirements_;
}

// .google.protobuf.Timestamp deleted_at = 6;
inline bool Group::has_deleted_at() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.deleted_at_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& Group::_internal_deleted_at() const {
  const ::PROTOBUF_NAMESPACE_ID::Timestamp* p = _impl_.deleted_at_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Timestamp&>(
      ::PROTOBUF_NAMESPACE_ID::_Timestamp_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::Timestamp& Group::deleted_at() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.deleted_at)
  return _internal_deleted_at();
}
inline void Group::unsafe_arena_set_allocated_deleted_at(
    ::PROTOBUF_NAMESPACE_ID::Timestamp* deleted_at) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.deleted_at_);
  }
  _impl_.deleted_at_ = deleted_at;
  if (deleted_at) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.Group.deleted_at)
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* Group::release_deleted_at() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.deleted_at_;
  _impl_.deleted_at_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* Group::unsafe_arena_release_deleted_at() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.Group.deleted_at)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::Timestamp* temp = _impl_.deleted_at_;
  _impl_.deleted_at_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* Group::_internal_mutable_deleted_at() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.deleted_at_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Timestamp>(GetArenaForAllocation());
    _impl_.deleted_at_ = p;
  }
  return _impl_.deleted_at_;
}
inline ::PROTOBUF_NAMESPACE_ID::Timestamp* Group::mutable_deleted_at() {
  ::PROTOBUF_NAMESPACE_ID::Timestamp* _msg = _internal_mutable_deleted_at();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.deleted_at)
  return _msg;
}
inline void Group::set_allocated_deleted_at(::PROTOBUF_NAMESPACE_ID::Timestamp* deleted_at) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.deleted_at_);
  }
  if (deleted_at) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(deleted_at));
    if (message_arena != submessage_arena) {
      deleted_at = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, deleted_at, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.deleted_at_ = deleted_at;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.Group.deleted_at)
}

// repeated string tags = 7;
inline int Group::_internal_tags_size() const {
  return _impl_.tags_.size();
}
inline int Group::tags_size() const {
  return _internal_tags_size();
}
inline void Group::clear_tags() {
  _internal_mutable_tags()->Clear();
}
inline std::string* Group::add_tags() {
  std::string* _s = _internal_add_tags();
  // @@protoc_insertion_point(field_add_mutable:keyapis.access_management.v1.Group.tags)
  return _s;
}
inline const std::string& Group::tags(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.Group.tags)
  return _internal_tags(index);
}
inline std::string* Group::mutable_tags(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.Group.tags)
  return _internal_mutable_tags()->Mutable(index);
}
inline void Group::set_tags(int index, const std::string& value) {
  _internal_mutable_tags()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Group.tags)
}
inline void Group::set_tags(int index, std::string&& value) {
  _internal_mutable_tags()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.Group.tags)
}
inline void Group::set_tags(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_tags()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:keyapis.access_management.v1.Group.tags)
}
inline void Group::set_tags(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_tags()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:keyapis.access_management.v1.Group.tags)
}
inline void Group::set_tags(int index, absl::string_view value) {
  _internal_mutable_tags()->Mutable(index)->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_set_string_piece:keyapis.access_management.v1.Group.tags)
}
inline void Group::add_tags(const std::string& value) {
  _internal_mutable_tags()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.Group.tags)
}
inline void Group::add_tags(std::string&& value) {
  _internal_mutable_tags()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.Group.tags)
}
inline void Group::add_tags(const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_tags()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:keyapis.access_management.v1.Group.tags)
}
inline void Group::add_tags(const char* value, std::size_t size) {
  _internal_mutable_tags()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:keyapis.access_management.v1.Group.tags)
}
inline void Group::add_tags(absl::string_view value) {
  _internal_mutable_tags()->Add()->assign(value.data(), value.size());
  // @@protoc_insertion_point(field_add_string_piece:keyapis.access_management.v1.Group.tags)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
Group::tags() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.Group.tags)
  return _internal_tags();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* Group::mutable_tags() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.Group.tags)
  return _internal_mutable_tags();
}
inline const std::string& Group::_internal_tags(int index) const {
  return _internal_tags().Get(index);
}
inline std::string* Group::_internal_add_tags() {
  return _internal_mutable_tags()->Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
Group::_internal_tags() const {
  return _impl_.tags_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
Group::_internal_mutable_tags() {
  return &_impl_.tags_;
}

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

// GetGroupRequest

// string id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void GetGroupRequest::clear_id() {
  _impl_.id_.ClearToEmpty();
}
inline const std::string& GetGroupRequest::id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupRequest.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void GetGroupRequest::set_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GetGroupRequest.id)
}
inline std::string* GetGroupRequest::mutable_id() {
  std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupRequest.id)
  return _s;
}
inline const std::string& GetGroupRequest::_internal_id() const {
  return _impl_.id_.Get();
}
inline void GetGroupRequest::_internal_set_id(const std::string& value) {
  ;


  _impl_.id_.Set(value, GetArenaForAllocation());
}
inline std::string* GetGroupRequest::_internal_mutable_id() {
  ;
  return _impl_.id_.Mutable( GetArenaForAllocation());
}
inline std::string* GetGroupRequest::release_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupRequest.id)
  return _impl_.id_.Release();
}
inline void GetGroupRequest::set_allocated_id(std::string* value) {
  _impl_.id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.id_.IsDefault()) {
          _impl_.id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupRequest.id)
}

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

// GetGroupResponse_Error

// .keyapis.access_management.v1.ValidationError validation = 1;
inline bool GetGroupResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool GetGroupResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void GetGroupResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline void GetGroupResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::ValidationError& GetGroupResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::keyapis::access_management::v1::ValidationError&>(::keyapis::access_management::v1::_ValidationError_default_instance_);
}
inline const ::keyapis::access_management::v1::ValidationError& GetGroupResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupResponse.Error.validation)
  return _internal_validation();
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupResponse_Error::unsafe_arena_set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupResponse.Error.validation)
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::keyapis::access_management::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupResponse_Error::mutable_validation() {
  ::keyapis::access_management::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupResponse.Error.validation)
  return _msg;
}

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

// GetGroupResponse

// .keyapis.access_management.v1.Group data = 1;
inline bool GetGroupResponse::has_data() const {
  return type_case() == kData;
}
inline bool GetGroupResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void GetGroupResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::Group* GetGroupResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* 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::access_management::v1::Group& GetGroupResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_management::v1::Group&>(::keyapis::access_management::v1::_Group_default_instance_);
}
inline const ::keyapis::access_management::v1::Group& GetGroupResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupResponse.data)
  return _internal_data();
}
inline ::keyapis::access_management::v1::Group* GetGroupResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupResponse::unsafe_arena_set_allocated_data(::keyapis::access_management::v1::Group* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupResponse.data)
}
inline ::keyapis::access_management::v1::Group* GetGroupResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_management::v1::Group >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_management::v1::Group* GetGroupResponse::mutable_data() {
  ::keyapis::access_management::v1::Group* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupResponse.data)
  return _msg;
}

// .keyapis.access_management.v1.GetGroupResponse.Error error = 2;
inline bool GetGroupResponse::has_error() const {
  return type_case() == kError;
}
inline bool GetGroupResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void GetGroupResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void GetGroupResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::GetGroupResponse_Error* GetGroupResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupResponse_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::access_management::v1::GetGroupResponse_Error& GetGroupResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_management::v1::GetGroupResponse_Error&>(::keyapis::access_management::v1::_GetGroupResponse_Error_default_instance_);
}
inline const ::keyapis::access_management::v1::GetGroupResponse_Error& GetGroupResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupResponse.error)
  return _internal_error();
}
inline ::keyapis::access_management::v1::GetGroupResponse_Error* GetGroupResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupResponse::unsafe_arena_set_allocated_error(::keyapis::access_management::v1::GetGroupResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupResponse.error)
}
inline ::keyapis::access_management::v1::GetGroupResponse_Error* GetGroupResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_management::v1::GetGroupResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_management::v1::GetGroupResponse_Error* GetGroupResponse::mutable_error() {
  ::keyapis::access_management::v1::GetGroupResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupResponse.error)
  return _msg;
}

inline bool GetGroupResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupResponse::TypeCase GetGroupResponse::type_case() const {
  return GetGroupResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupListRequest

// .keyapis.access_management.v1.GroupFilter filter = 1;
inline bool GetGroupListRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupListRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupFilter& GetGroupListRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupFilter&>(
      ::keyapis::access_management::v1::_GroupFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupFilter& GetGroupListRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupListRequest.filter)
  return _internal_filter();
}
inline void GetGroupListRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupListRequest.filter)
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupListRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupListRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupListRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupListRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupListRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupListRequest.filter)
  return _msg;
}
inline void GetGroupListRequest::set_allocated_filter(::keyapis::access_management::v1::GroupFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupListRequest.filter)
}

// .keyapis.access_management.v1.GroupPaging paging = 2;
inline bool GetGroupListRequest::has_paging() const {
  return pagination_case() == kPaging;
}
inline bool GetGroupListRequest::_internal_has_paging() const {
  return pagination_case() == kPaging;
}
inline void GetGroupListRequest::set_has_paging() {
  _impl_._oneof_case_[0] = kPaging;
}
inline void GetGroupListRequest::clear_paging() {
  if (pagination_case() == kPaging) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.pagination_.paging_;
    }
    clear_has_pagination();
  }
}
inline ::keyapis::access_management::v1::GroupPaging* GetGroupListRequest::release_paging() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_management::v1::GroupPaging* temp = _impl_.pagination_.paging_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::GroupPaging& GetGroupListRequest::_internal_paging() const {
  return pagination_case() == kPaging
      ? *_impl_.pagination_.paging_
      : reinterpret_cast<::keyapis::access_management::v1::GroupPaging&>(::keyapis::access_management::v1::_GroupPaging_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupPaging& GetGroupListRequest::paging() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupListRequest.paging)
  return _internal_paging();
}
inline ::keyapis::access_management::v1::GroupPaging* GetGroupListRequest::unsafe_arena_release_paging() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_management::v1::GroupPaging* temp = _impl_.pagination_.paging_;
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupListRequest::unsafe_arena_set_allocated_paging(::keyapis::access_management::v1::GroupPaging* paging) {
  clear_pagination();
  if (paging) {
    set_has_paging();
    _impl_.pagination_.paging_ = paging;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupListRequest.paging)
}
inline ::keyapis::access_management::v1::GroupPaging* GetGroupListRequest::_internal_mutable_paging() {
  if (pagination_case() != kPaging) {
    clear_pagination();
    set_has_paging();
    _impl_.pagination_.paging_ = CreateMaybeMessage< ::keyapis::access_management::v1::GroupPaging >(GetArenaForAllocation());
  }
  return _impl_.pagination_.paging_;
}
inline ::keyapis::access_management::v1::GroupPaging* GetGroupListRequest::mutable_paging() {
  ::keyapis::access_management::v1::GroupPaging* _msg = _internal_mutable_paging();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupListRequest.paging)
  return _msg;
}

inline bool GetGroupListRequest::has_pagination() const {
  return pagination_case() != PAGINATION_NOT_SET;
}
inline void GetGroupListRequest::clear_has_pagination() {
  _impl_._oneof_case_[0] = PAGINATION_NOT_SET;
}
inline GetGroupListRequest::PaginationCase GetGroupListRequest::pagination_case() const {
  return GetGroupListRequest::PaginationCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupListResponse_Error

// .keyapis.access_management.v1.ValidationError validation = 1;
inline bool GetGroupListResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool GetGroupListResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void GetGroupListResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline void GetGroupListResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupListResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupListResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::ValidationError& GetGroupListResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::keyapis::access_management::v1::ValidationError&>(::keyapis::access_management::v1::_ValidationError_default_instance_);
}
inline const ::keyapis::access_management::v1::ValidationError& GetGroupListResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupListResponse.Error.validation)
  return _internal_validation();
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupListResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupListResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupListResponse_Error::unsafe_arena_set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupListResponse.Error.validation)
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupListResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::keyapis::access_management::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupListResponse_Error::mutable_validation() {
  ::keyapis::access_management::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupListResponse.Error.validation)
  return _msg;
}

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

// GetGroupListResponse

// .keyapis.access_management.v1.Group data = 1;
inline bool GetGroupListResponse::has_data() const {
  return type_case() == kData;
}
inline bool GetGroupListResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void GetGroupListResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupListResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::Group* GetGroupListResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* 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::access_management::v1::Group& GetGroupListResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_management::v1::Group&>(::keyapis::access_management::v1::_Group_default_instance_);
}
inline const ::keyapis::access_management::v1::Group& GetGroupListResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupListResponse.data)
  return _internal_data();
}
inline ::keyapis::access_management::v1::Group* GetGroupListResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupListResponse::unsafe_arena_set_allocated_data(::keyapis::access_management::v1::Group* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupListResponse.data)
}
inline ::keyapis::access_management::v1::Group* GetGroupListResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_management::v1::Group >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_management::v1::Group* GetGroupListResponse::mutable_data() {
  ::keyapis::access_management::v1::Group* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupListResponse.data)
  return _msg;
}

// .keyapis.access_management.v1.GetGroupListResponse.Error error = 2;
inline bool GetGroupListResponse::has_error() const {
  return type_case() == kError;
}
inline bool GetGroupListResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void GetGroupListResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void GetGroupListResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::GetGroupListResponse_Error* GetGroupListResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupListResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupListResponse_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::access_management::v1::GetGroupListResponse_Error& GetGroupListResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_management::v1::GetGroupListResponse_Error&>(::keyapis::access_management::v1::_GetGroupListResponse_Error_default_instance_);
}
inline const ::keyapis::access_management::v1::GetGroupListResponse_Error& GetGroupListResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupListResponse.error)
  return _internal_error();
}
inline ::keyapis::access_management::v1::GetGroupListResponse_Error* GetGroupListResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupListResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupListResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupListResponse::unsafe_arena_set_allocated_error(::keyapis::access_management::v1::GetGroupListResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupListResponse.error)
}
inline ::keyapis::access_management::v1::GetGroupListResponse_Error* GetGroupListResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_management::v1::GetGroupListResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_management::v1::GetGroupListResponse_Error* GetGroupListResponse::mutable_error() {
  ::keyapis::access_management::v1::GetGroupListResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupListResponse.error)
  return _msg;
}

inline bool GetGroupListResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupListResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupListResponse::TypeCase GetGroupListResponse::type_case() const {
  return GetGroupListResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupCountRequest

// .keyapis.access_management.v1.GroupFilter filter = 1;
inline bool GetGroupCountRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupCountRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupFilter& GetGroupCountRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupFilter&>(
      ::keyapis::access_management::v1::_GroupFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupFilter& GetGroupCountRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupCountRequest.filter)
  return _internal_filter();
}
inline void GetGroupCountRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupCountRequest.filter)
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupCountRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupCountRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupCountRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupCountRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupFilter* GetGroupCountRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupCountRequest.filter)
  return _msg;
}
inline void GetGroupCountRequest::set_allocated_filter(::keyapis::access_management::v1::GroupFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupCountRequest.filter)
}

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

// GetGroupCountResponse_Error

// .keyapis.access_management.v1.ValidationError validation = 1;
inline bool GetGroupCountResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool GetGroupCountResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void GetGroupCountResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline void GetGroupCountResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupCountResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupCountResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::ValidationError& GetGroupCountResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::keyapis::access_management::v1::ValidationError&>(::keyapis::access_management::v1::_ValidationError_default_instance_);
}
inline const ::keyapis::access_management::v1::ValidationError& GetGroupCountResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupCountResponse.Error.validation)
  return _internal_validation();
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupCountResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupCountResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupCountResponse_Error::unsafe_arena_set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupCountResponse.Error.validation)
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupCountResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::keyapis::access_management::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::keyapis::access_management::v1::ValidationError* GetGroupCountResponse_Error::mutable_validation() {
  ::keyapis::access_management::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupCountResponse.Error.validation)
  return _msg;
}

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

// GetGroupCountResponse

// int32 data = 1;
inline bool GetGroupCountResponse::has_data() const {
  return type_case() == kData;
}
inline void GetGroupCountResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupCountResponse::clear_data() {
  if (type_case() == kData) {
    _impl_.type_.data_ = 0;
    clear_has_type();
  }
}
inline ::int32_t GetGroupCountResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupCountResponse.data)
  return _internal_data();
}
inline void GetGroupCountResponse::set_data(::int32_t value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GetGroupCountResponse.data)
}
inline ::int32_t GetGroupCountResponse::_internal_data() const {
  if (type_case() == kData) {
    return _impl_.type_.data_;
  }
  return 0;
}
inline void GetGroupCountResponse::_internal_set_data(::int32_t value) {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
  }
  _impl_.type_.data_ = value;
}

// .keyapis.access_management.v1.GetGroupCountResponse.Error error = 2;
inline bool GetGroupCountResponse::has_error() const {
  return type_case() == kError;
}
inline bool GetGroupCountResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void GetGroupCountResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void GetGroupCountResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::GetGroupCountResponse_Error* GetGroupCountResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupCountResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupCountResponse_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::access_management::v1::GetGroupCountResponse_Error& GetGroupCountResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_management::v1::GetGroupCountResponse_Error&>(::keyapis::access_management::v1::_GetGroupCountResponse_Error_default_instance_);
}
inline const ::keyapis::access_management::v1::GetGroupCountResponse_Error& GetGroupCountResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupCountResponse.error)
  return _internal_error();
}
inline ::keyapis::access_management::v1::GetGroupCountResponse_Error* GetGroupCountResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupCountResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupCountResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupCountResponse::unsafe_arena_set_allocated_error(::keyapis::access_management::v1::GetGroupCountResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupCountResponse.error)
}
inline ::keyapis::access_management::v1::GetGroupCountResponse_Error* GetGroupCountResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_management::v1::GetGroupCountResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_management::v1::GetGroupCountResponse_Error* GetGroupCountResponse::mutable_error() {
  ::keyapis::access_management::v1::GetGroupCountResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupCountResponse.error)
  return _msg;
}

inline bool GetGroupCountResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupCountResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupCountResponse::TypeCase GetGroupCountResponse::type_case() const {
  return GetGroupCountResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

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

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

// GroupFilter

// string text = 1;
inline void GroupFilter::clear_text() {
  _impl_.text_.ClearToEmpty();
}
inline const std::string& GroupFilter::text() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupFilter.text)
  return _internal_text();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void GroupFilter::set_text(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.text_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupFilter.text)
}
inline std::string* GroupFilter::mutable_text() {
  std::string* _s = _internal_mutable_text();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupFilter.text)
  return _s;
}
inline const std::string& GroupFilter::_internal_text() const {
  return _impl_.text_.Get();
}
inline void GroupFilter::_internal_set_text(const std::string& value) {
  ;


  _impl_.text_.Set(value, GetArenaForAllocation());
}
inline std::string* GroupFilter::_internal_mutable_text() {
  ;
  return _impl_.text_.Mutable( GetArenaForAllocation());
}
inline std::string* GroupFilter::release_text() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupFilter.text)
  return _impl_.text_.Release();
}
inline void GroupFilter::set_allocated_text(std::string* value) {
  _impl_.text_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.text_.IsDefault()) {
          _impl_.text_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupFilter.text)
}

// map<string, string> requirements = 2;
inline int GroupFilter::_internal_requirements_size() const {
  return _impl_.requirements_.size();
}
inline int GroupFilter::requirements_size() const {
  return _internal_requirements_size();
}
inline void GroupFilter::clear_requirements() {
  _impl_.requirements_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupFilter::_internal_requirements() const {
  return _impl_.requirements_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupFilter::requirements() const {
  // @@protoc_insertion_point(field_map:keyapis.access_management.v1.GroupFilter.requirements)
  return _internal_requirements();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupFilter::_internal_mutable_requirements() {
  return _impl_.requirements_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupFilter::mutable_requirements() {
  // @@protoc_insertion_point(field_mutable_map:keyapis.access_management.v1.GroupFilter.requirements)
  return _internal_mutable_requirements();
}

// map<string, string> claims = 3;
inline int GroupFilter::_internal_claims_size() const {
  return _impl_.claims_.size();
}
inline int GroupFilter::claims_size() const {
  return _internal_claims_size();
}
inline void GroupFilter::clear_claims() {
  _impl_.claims_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupFilter::_internal_claims() const {
  return _impl_.claims_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupFilter::claims() const {
  // @@protoc_insertion_point(field_map:keyapis.access_management.v1.GroupFilter.claims)
  return _internal_claims();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupFilter::_internal_mutable_claims() {
  return _impl_.claims_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupFilter::mutable_claims() {
  // @@protoc_insertion_point(field_mutable_map:keyapis.access_management.v1.GroupFilter.claims)
  return _internal_mutable_claims();
}

// repeated string tags = 4;
inline int GroupFilter::_internal_tags_size() const {
  return _impl_.tags_.size();
}
inline int GroupFilter::tags_size() const {
  return _internal_tags_size();
}
inline void GroupFilter::clear_tags() {
  _internal_mutable_tags()->Clear();
}
inline std::string* GroupFilter::add_tags() {
  std::string* _s = _internal_add_tags();
  // @@protoc_insertion_point(field_add_mutable:keyapis.access_management.v1.GroupFilter.tags)
  return _s;
}
inline const std::string& GroupFilter::tags(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupFilter.tags)
  return _internal_tags(index);
}
inline std::string* GroupFilter::mutable_tags(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupFilter.tags)
  return _internal_mutable_tags()->Mutable(index);
}
inline void GroupFilter::set_tags(int index, const std::string& value) {
  _internal_mutable_tags()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::set_tags(int index, std::string&& value) {
  _internal_mutable_tags()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::set_tags(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_tags()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::set_tags(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_tags()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::set_tags(int index, absl::string_view value) {
  _internal_mutable_tags()->Mutable(index)->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_set_string_piece:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::add_tags(const std::string& value) {
  _internal_mutable_tags()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::add_tags(std::string&& value) {
  _internal_mutable_tags()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::add_tags(const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_tags()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::add_tags(const char* value, std::size_t size) {
  _internal_mutable_tags()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:keyapis.access_management.v1.GroupFilter.tags)
}
inline void GroupFilter::add_tags(absl::string_view value) {
  _internal_mutable_tags()->Add()->assign(value.data(), value.size());
  // @@protoc_insertion_point(field_add_string_piece:keyapis.access_management.v1.GroupFilter.tags)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
GroupFilter::tags() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.GroupFilter.tags)
  return _internal_tags();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* GroupFilter::mutable_tags() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.GroupFilter.tags)
  return _internal_mutable_tags();
}
inline const std::string& GroupFilter::_internal_tags(int index) const {
  return _internal_tags().Get(index);
}
inline std::string* GroupFilter::_internal_add_tags() {
  return _internal_mutable_tags()->Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
GroupFilter::_internal_tags() const {
  return _impl_.tags_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
GroupFilter::_internal_mutable_tags() {
  return &_impl_.tags_;
}

// .google.protobuf.BoolValue hide_deleted = 5;
inline bool GroupFilter::has_hide_deleted() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.hide_deleted_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::BoolValue& GroupFilter::_internal_hide_deleted() const {
  const ::PROTOBUF_NAMESPACE_ID::BoolValue* p = _impl_.hide_deleted_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::BoolValue&>(
      ::PROTOBUF_NAMESPACE_ID::_BoolValue_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::BoolValue& GroupFilter::hide_deleted() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupFilter.hide_deleted)
  return _internal_hide_deleted();
}
inline void GroupFilter::unsafe_arena_set_allocated_hide_deleted(
    ::PROTOBUF_NAMESPACE_ID::BoolValue* hide_deleted) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.hide_deleted_);
  }
  _impl_.hide_deleted_ = hide_deleted;
  if (hide_deleted) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GroupFilter.hide_deleted)
}
inline ::PROTOBUF_NAMESPACE_ID::BoolValue* GroupFilter::release_hide_deleted() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::BoolValue* temp = _impl_.hide_deleted_;
  _impl_.hide_deleted_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::BoolValue* GroupFilter::unsafe_arena_release_hide_deleted() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupFilter.hide_deleted)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::BoolValue* temp = _impl_.hide_deleted_;
  _impl_.hide_deleted_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::BoolValue* GroupFilter::_internal_mutable_hide_deleted() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.hide_deleted_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::BoolValue>(GetArenaForAllocation());
    _impl_.hide_deleted_ = p;
  }
  return _impl_.hide_deleted_;
}
inline ::PROTOBUF_NAMESPACE_ID::BoolValue* GroupFilter::mutable_hide_deleted() {
  ::PROTOBUF_NAMESPACE_ID::BoolValue* _msg = _internal_mutable_hide_deleted();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupFilter.hide_deleted)
  return _msg;
}
inline void GroupFilter::set_allocated_hide_deleted(::PROTOBUF_NAMESPACE_ID::BoolValue* hide_deleted) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.hide_deleted_);
  }
  if (hide_deleted) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(hide_deleted));
    if (message_arena != submessage_arena) {
      hide_deleted = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, hide_deleted, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.hide_deleted_ = hide_deleted;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupFilter.hide_deleted)
}

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

// GroupPaging

// .keyapis.access_management.v1.GroupPaging.OrderByType order_by_type = 1;
inline void GroupPaging::clear_order_by_type() {
  _impl_.order_by_type_ = 0;
}
inline ::keyapis::access_management::v1::GroupPaging_OrderByType GroupPaging::order_by_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupPaging.order_by_type)
  return _internal_order_by_type();
}
inline void GroupPaging::set_order_by_type(::keyapis::access_management::v1::GroupPaging_OrderByType value) {
   _internal_set_order_by_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupPaging.order_by_type)
}
inline ::keyapis::access_management::v1::GroupPaging_OrderByType GroupPaging::_internal_order_by_type() const {
  return static_cast<::keyapis::access_management::v1::GroupPaging_OrderByType>(_impl_.order_by_type_);
}
inline void GroupPaging::_internal_set_order_by_type(::keyapis::access_management::v1::GroupPaging_OrderByType value) {
  ;
  _impl_.order_by_type_ = value;
}

// .keyapis.access_management.v1.GroupPaging.DirectionType direction_type = 2;
inline void GroupPaging::clear_direction_type() {
  _impl_.direction_type_ = 0;
}
inline ::keyapis::access_management::v1::GroupPaging_DirectionType GroupPaging::direction_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupPaging.direction_type)
  return _internal_direction_type();
}
inline void GroupPaging::set_direction_type(::keyapis::access_management::v1::GroupPaging_DirectionType value) {
   _internal_set_direction_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupPaging.direction_type)
}
inline ::keyapis::access_management::v1::GroupPaging_DirectionType GroupPaging::_internal_direction_type() const {
  return static_cast<::keyapis::access_management::v1::GroupPaging_DirectionType>(_impl_.direction_type_);
}
inline void GroupPaging::_internal_set_direction_type(::keyapis::access_management::v1::GroupPaging_DirectionType value) {
  ;
  _impl_.direction_type_ = value;
}

// int32 limit = 3;
inline void GroupPaging::clear_limit() {
  _impl_.limit_ = 0;
}
inline ::int32_t GroupPaging::limit() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupPaging.limit)
  return _internal_limit();
}
inline void GroupPaging::set_limit(::int32_t value) {
  _internal_set_limit(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupPaging.limit)
}
inline ::int32_t GroupPaging::_internal_limit() const {
  return _impl_.limit_;
}
inline void GroupPaging::_internal_set_limit(::int32_t value) {
  ;
  _impl_.limit_ = value;
}

// int32 offset = 4;
inline void GroupPaging::clear_offset() {
  _impl_.offset_ = 0;
}
inline ::int32_t GroupPaging::offset() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupPaging.offset)
  return _internal_offset();
}
inline void GroupPaging::set_offset(::int32_t value) {
  _internal_set_offset(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupPaging.offset)
}
inline ::int32_t GroupPaging::_internal_offset() const {
  return _impl_.offset_;
}
inline void GroupPaging::_internal_set_offset(::int32_t value) {
  ;
  _impl_.offset_ = value;
}

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

// PostGroupRequest

// .keyapis.access_management.v1.Group data = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool PostGroupRequest::has_data() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.data_ != nullptr);
  return value;
}
inline void PostGroupRequest::clear_data() {
  if (_impl_.data_ != nullptr) _impl_.data_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::Group& PostGroupRequest::_internal_data() const {
  const ::keyapis::access_management::v1::Group* p = _impl_.data_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::Group&>(
      ::keyapis::access_management::v1::_Group_default_instance_);
}
inline const ::keyapis::access_management::v1::Group& PostGroupRequest::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupRequest.data)
  return _internal_data();
}
inline void PostGroupRequest::unsafe_arena_set_allocated_data(
    ::keyapis::access_management::v1::Group* data) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.data_);
  }
  _impl_.data_ = data;
  if (data) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupRequest.data)
}
inline ::keyapis::access_management::v1::Group* PostGroupRequest::release_data() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::Group* temp = _impl_.data_;
  _impl_.data_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::Group* PostGroupRequest::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupRequest.data)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::Group* temp = _impl_.data_;
  _impl_.data_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::Group* PostGroupRequest::_internal_mutable_data() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.data_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::Group>(GetArenaForAllocation());
    _impl_.data_ = p;
  }
  return _impl_.data_;
}
inline ::keyapis::access_management::v1::Group* PostGroupRequest::mutable_data() {
  ::keyapis::access_management::v1::Group* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupRequest.data)
  return _msg;
}
inline void PostGroupRequest::set_allocated_data(::keyapis::access_management::v1::Group* data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.data_;
  }
  if (data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(data);
    if (message_arena != submessage_arena) {
      data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, data, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.data_ = data;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PostGroupRequest.data)
}

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

// PostGroupByTemplateRequest

// string group_template_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void PostGroupByTemplateRequest::clear_group_template_id() {
  _impl_.group_template_id_.ClearToEmpty();
}
inline const std::string& PostGroupByTemplateRequest::group_template_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateRequest.group_template_id)
  return _internal_group_template_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PostGroupByTemplateRequest::set_group_template_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.group_template_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.PostGroupByTemplateRequest.group_template_id)
}
inline std::string* PostGroupByTemplateRequest::mutable_group_template_id() {
  std::string* _s = _internal_mutable_group_template_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateRequest.group_template_id)
  return _s;
}
inline const std::string& PostGroupByTemplateRequest::_internal_group_template_id() const {
  return _impl_.group_template_id_.Get();
}
inline void PostGroupByTemplateRequest::_internal_set_group_template_id(const std::string& value) {
  ;


  _impl_.group_template_id_.Set(value, GetArenaForAllocation());
}
inline std::string* PostGroupByTemplateRequest::_internal_mutable_group_template_id() {
  ;
  return _impl_.group_template_id_.Mutable( GetArenaForAllocation());
}
inline std::string* PostGroupByTemplateRequest::release_group_template_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupByTemplateRequest.group_template_id)
  return _impl_.group_template_id_.Release();
}
inline void PostGroupByTemplateRequest::set_allocated_group_template_id(std::string* value) {
  _impl_.group_template_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.group_template_id_.IsDefault()) {
          _impl_.group_template_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PostGroupByTemplateRequest.group_template_id)
}

// string group_title = 2 [(.google.api.field_behavior) = REQUIRED];
inline void PostGroupByTemplateRequest::clear_group_title() {
  _impl_.group_title_.ClearToEmpty();
}
inline const std::string& PostGroupByTemplateRequest::group_title() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateRequest.group_title)
  return _internal_group_title();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void PostGroupByTemplateRequest::set_group_title(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.group_title_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.PostGroupByTemplateRequest.group_title)
}
inline std::string* PostGroupByTemplateRequest::mutable_group_title() {
  std::string* _s = _internal_mutable_group_title();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateRequest.group_title)
  return _s;
}
inline const std::string& PostGroupByTemplateRequest::_internal_group_title() const {
  return _impl_.group_title_.Get();
}
inline void PostGroupByTemplateRequest::_internal_set_group_title(const std::string& value) {
  ;


  _impl_.group_title_.Set(value, GetArenaForAllocation());
}
inline std::string* PostGroupByTemplateRequest::_internal_mutable_group_title() {
  ;
  return _impl_.group_title_.Mutable( GetArenaForAllocation());
}
inline std::string* PostGroupByTemplateRequest::release_group_title() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupByTemplateRequest.group_title)
  return _impl_.group_title_.Release();
}
inline void PostGroupByTemplateRequest::set_allocated_group_title(std::string* value) {
  _impl_.group_title_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.group_title_.IsDefault()) {
          _impl_.group_title_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PostGroupByTemplateRequest.group_title)
}

// repeated .keyapis.access_management.v1.Claim group_requirements = 3;
inline int PostGroupByTemplateRequest::_internal_group_requirements_size() const {
  return _impl_.group_requirements_.size();
}
inline int PostGroupByTemplateRequest::group_requirements_size() const {
  return _internal_group_requirements_size();
}
inline void PostGroupByTemplateRequest::clear_group_requirements() {
  _internal_mutable_group_requirements()->Clear();
}
inline ::keyapis::access_management::v1::Claim* PostGroupByTemplateRequest::mutable_group_requirements(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateRequest.group_requirements)
  return _internal_mutable_group_requirements()->Mutable(index);
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >*
PostGroupByTemplateRequest::mutable_group_requirements() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.PostGroupByTemplateRequest.group_requirements)
  return _internal_mutable_group_requirements();
}
inline const ::keyapis::access_management::v1::Claim& PostGroupByTemplateRequest::_internal_group_requirements(int index) const {
  return _internal_group_requirements().Get(index);
}
inline const ::keyapis::access_management::v1::Claim& PostGroupByTemplateRequest::group_requirements(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateRequest.group_requirements)
  return _internal_group_requirements(index);
}
inline ::keyapis::access_management::v1::Claim* PostGroupByTemplateRequest::_internal_add_group_requirements() {
  return _internal_mutable_group_requirements()->Add();
}
inline ::keyapis::access_management::v1::Claim* PostGroupByTemplateRequest::add_group_requirements() {
  ::keyapis::access_management::v1::Claim* _add = _internal_add_group_requirements();
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.PostGroupByTemplateRequest.group_requirements)
  return _add;
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::keyapis::access_management::v1::Claim >&
PostGroupByTemplateRequest::group_requirements() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.PostGroupByTemplateRequest.group_requirements)
  return _internal_group_requirements();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>&
PostGroupByTemplateRequest::_internal_group_requirements() const {
  return _impl_.group_requirements_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<::keyapis::access_management::v1::Claim>*
PostGroupByTemplateRequest::_internal_mutable_group_requirements() {
  return &_impl_.group_requirements_;
}

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

// PostGroupResponse_Error

// .keyapis.access_management.v1.ValidationError validation = 1;
inline bool PostGroupResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool PostGroupResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void PostGroupResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline void PostGroupResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::ValidationError& PostGroupResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::keyapis::access_management::v1::ValidationError&>(::keyapis::access_management::v1::_ValidationError_default_instance_);
}
inline const ::keyapis::access_management::v1::ValidationError& PostGroupResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupResponse.Error.validation)
  return _internal_validation();
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupResponse_Error::unsafe_arena_set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupResponse.Error.validation)
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::keyapis::access_management::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupResponse_Error::mutable_validation() {
  ::keyapis::access_management::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupResponse.Error.validation)
  return _msg;
}

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

// PostGroupResponse

// .keyapis.access_management.v1.Group data = 1;
inline bool PostGroupResponse::has_data() const {
  return type_case() == kData;
}
inline bool PostGroupResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void PostGroupResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void PostGroupResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::Group* PostGroupResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* 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::access_management::v1::Group& PostGroupResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_management::v1::Group&>(::keyapis::access_management::v1::_Group_default_instance_);
}
inline const ::keyapis::access_management::v1::Group& PostGroupResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupResponse.data)
  return _internal_data();
}
inline ::keyapis::access_management::v1::Group* PostGroupResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupResponse::unsafe_arena_set_allocated_data(::keyapis::access_management::v1::Group* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupResponse.data)
}
inline ::keyapis::access_management::v1::Group* PostGroupResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_management::v1::Group >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_management::v1::Group* PostGroupResponse::mutable_data() {
  ::keyapis::access_management::v1::Group* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupResponse.data)
  return _msg;
}

// .keyapis.access_management.v1.PostGroupResponse.Error error = 2;
inline bool PostGroupResponse::has_error() const {
  return type_case() == kError;
}
inline bool PostGroupResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void PostGroupResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void PostGroupResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::PostGroupResponse_Error* PostGroupResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::PostGroupResponse_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::access_management::v1::PostGroupResponse_Error& PostGroupResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_management::v1::PostGroupResponse_Error&>(::keyapis::access_management::v1::_PostGroupResponse_Error_default_instance_);
}
inline const ::keyapis::access_management::v1::PostGroupResponse_Error& PostGroupResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupResponse.error)
  return _internal_error();
}
inline ::keyapis::access_management::v1::PostGroupResponse_Error* PostGroupResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::PostGroupResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupResponse::unsafe_arena_set_allocated_error(::keyapis::access_management::v1::PostGroupResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupResponse.error)
}
inline ::keyapis::access_management::v1::PostGroupResponse_Error* PostGroupResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_management::v1::PostGroupResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_management::v1::PostGroupResponse_Error* PostGroupResponse::mutable_error() {
  ::keyapis::access_management::v1::PostGroupResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupResponse.error)
  return _msg;
}

inline bool PostGroupResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void PostGroupResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline PostGroupResponse::TypeCase PostGroupResponse::type_case() const {
  return PostGroupResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// PostGroupByTemplateResponse_Error

// .keyapis.access_management.v1.ValidationError validation = 1;
inline bool PostGroupByTemplateResponse_Error::has_validation() const {
  return reason_case() == kValidation;
}
inline bool PostGroupByTemplateResponse_Error::_internal_has_validation() const {
  return reason_case() == kValidation;
}
inline void PostGroupByTemplateResponse_Error::set_has_validation() {
  _impl_._oneof_case_[0] = kValidation;
}
inline void PostGroupByTemplateResponse_Error::clear_validation() {
  if (reason_case() == kValidation) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.validation_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupByTemplateResponse_Error::release_validation() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::ValidationError& PostGroupByTemplateResponse_Error::_internal_validation() const {
  return reason_case() == kValidation
      ? *_impl_.reason_.validation_
      : reinterpret_cast<::keyapis::access_management::v1::ValidationError&>(::keyapis::access_management::v1::_ValidationError_default_instance_);
}
inline const ::keyapis::access_management::v1::ValidationError& PostGroupByTemplateResponse_Error::validation() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.validation)
  return _internal_validation();
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupByTemplateResponse_Error::unsafe_arena_release_validation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.validation)
  if (reason_case() == kValidation) {
    clear_has_reason();
    ::keyapis::access_management::v1::ValidationError* temp = _impl_.reason_.validation_;
    _impl_.reason_.validation_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupByTemplateResponse_Error::unsafe_arena_set_allocated_validation(::keyapis::access_management::v1::ValidationError* validation) {
  clear_reason();
  if (validation) {
    set_has_validation();
    _impl_.reason_.validation_ = validation;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.validation)
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupByTemplateResponse_Error::_internal_mutable_validation() {
  if (reason_case() != kValidation) {
    clear_reason();
    set_has_validation();
    _impl_.reason_.validation_ = CreateMaybeMessage< ::keyapis::access_management::v1::ValidationError >(GetArenaForAllocation());
  }
  return _impl_.reason_.validation_;
}
inline ::keyapis::access_management::v1::ValidationError* PostGroupByTemplateResponse_Error::mutable_validation() {
  ::keyapis::access_management::v1::ValidationError* _msg = _internal_mutable_validation();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.validation)
  return _msg;
}

// .keyapis.access_management.v1.GroupTemplateNotFoundError group_template_not_found_error = 2;
inline bool PostGroupByTemplateResponse_Error::has_group_template_not_found_error() const {
  return reason_case() == kGroupTemplateNotFoundError;
}
inline bool PostGroupByTemplateResponse_Error::_internal_has_group_template_not_found_error() const {
  return reason_case() == kGroupTemplateNotFoundError;
}
inline void PostGroupByTemplateResponse_Error::set_has_group_template_not_found_error() {
  _impl_._oneof_case_[0] = kGroupTemplateNotFoundError;
}
inline void PostGroupByTemplateResponse_Error::clear_group_template_not_found_error() {
  if (reason_case() == kGroupTemplateNotFoundError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.group_template_not_found_error_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::GroupTemplateNotFoundError* PostGroupByTemplateResponse_Error::release_group_template_not_found_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.group_template_not_found_error)
  if (reason_case() == kGroupTemplateNotFoundError) {
    clear_has_reason();
    ::keyapis::access_management::v1::GroupTemplateNotFoundError* temp = _impl_.reason_.group_template_not_found_error_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.group_template_not_found_error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::GroupTemplateNotFoundError& PostGroupByTemplateResponse_Error::_internal_group_template_not_found_error() const {
  return reason_case() == kGroupTemplateNotFoundError
      ? *_impl_.reason_.group_template_not_found_error_
      : reinterpret_cast<::keyapis::access_management::v1::GroupTemplateNotFoundError&>(::keyapis::access_management::v1::_GroupTemplateNotFoundError_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupTemplateNotFoundError& PostGroupByTemplateResponse_Error::group_template_not_found_error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.group_template_not_found_error)
  return _internal_group_template_not_found_error();
}
inline ::keyapis::access_management::v1::GroupTemplateNotFoundError* PostGroupByTemplateResponse_Error::unsafe_arena_release_group_template_not_found_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.group_template_not_found_error)
  if (reason_case() == kGroupTemplateNotFoundError) {
    clear_has_reason();
    ::keyapis::access_management::v1::GroupTemplateNotFoundError* temp = _impl_.reason_.group_template_not_found_error_;
    _impl_.reason_.group_template_not_found_error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupByTemplateResponse_Error::unsafe_arena_set_allocated_group_template_not_found_error(::keyapis::access_management::v1::GroupTemplateNotFoundError* group_template_not_found_error) {
  clear_reason();
  if (group_template_not_found_error) {
    set_has_group_template_not_found_error();
    _impl_.reason_.group_template_not_found_error_ = group_template_not_found_error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.group_template_not_found_error)
}
inline ::keyapis::access_management::v1::GroupTemplateNotFoundError* PostGroupByTemplateResponse_Error::_internal_mutable_group_template_not_found_error() {
  if (reason_case() != kGroupTemplateNotFoundError) {
    clear_reason();
    set_has_group_template_not_found_error();
    _impl_.reason_.group_template_not_found_error_ = CreateMaybeMessage< ::keyapis::access_management::v1::GroupTemplateNotFoundError >(GetArenaForAllocation());
  }
  return _impl_.reason_.group_template_not_found_error_;
}
inline ::keyapis::access_management::v1::GroupTemplateNotFoundError* PostGroupByTemplateResponse_Error::mutable_group_template_not_found_error() {
  ::keyapis::access_management::v1::GroupTemplateNotFoundError* _msg = _internal_mutable_group_template_not_found_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateResponse.Error.group_template_not_found_error)
  return _msg;
}

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

// PostGroupByTemplateResponse

// .keyapis.access_management.v1.Group data = 1;
inline bool PostGroupByTemplateResponse::has_data() const {
  return type_case() == kData;
}
inline bool PostGroupByTemplateResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void PostGroupByTemplateResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void PostGroupByTemplateResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::Group* PostGroupByTemplateResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupByTemplateResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* 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::access_management::v1::Group& PostGroupByTemplateResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_management::v1::Group&>(::keyapis::access_management::v1::_Group_default_instance_);
}
inline const ::keyapis::access_management::v1::Group& PostGroupByTemplateResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateResponse.data)
  return _internal_data();
}
inline ::keyapis::access_management::v1::Group* PostGroupByTemplateResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupByTemplateResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Group* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupByTemplateResponse::unsafe_arena_set_allocated_data(::keyapis::access_management::v1::Group* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupByTemplateResponse.data)
}
inline ::keyapis::access_management::v1::Group* PostGroupByTemplateResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_management::v1::Group >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_management::v1::Group* PostGroupByTemplateResponse::mutable_data() {
  ::keyapis::access_management::v1::Group* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateResponse.data)
  return _msg;
}

// .keyapis.access_management.v1.PostGroupByTemplateResponse.Error error = 2;
inline bool PostGroupByTemplateResponse::has_error() const {
  return type_case() == kError;
}
inline bool PostGroupByTemplateResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void PostGroupByTemplateResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void PostGroupByTemplateResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* PostGroupByTemplateResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PostGroupByTemplateResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::PostGroupByTemplateResponse_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::access_management::v1::PostGroupByTemplateResponse_Error& PostGroupByTemplateResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_management::v1::PostGroupByTemplateResponse_Error&>(::keyapis::access_management::v1::_PostGroupByTemplateResponse_Error_default_instance_);
}
inline const ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error& PostGroupByTemplateResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PostGroupByTemplateResponse.error)
  return _internal_error();
}
inline ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* PostGroupByTemplateResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.PostGroupByTemplateResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PostGroupByTemplateResponse::unsafe_arena_set_allocated_error(::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PostGroupByTemplateResponse.error)
}
inline ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* PostGroupByTemplateResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* PostGroupByTemplateResponse::mutable_error() {
  ::keyapis::access_management::v1::PostGroupByTemplateResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PostGroupByTemplateResponse.error)
  return _msg;
}

inline bool PostGroupByTemplateResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void PostGroupByTemplateResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline PostGroupByTemplateResponse::TypeCase PostGroupByTemplateResponse::type_case() const {
  return PostGroupByTemplateResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// DeleteGroupRequest

// string id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void DeleteGroupRequest::clear_id() {
  _impl_.id_.ClearToEmpty();
}
inline const std::string& DeleteGroupRequest::id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.DeleteGroupRequest.id)
  return _internal_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void DeleteGroupRequest::set_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.DeleteGroupRequest.id)
}
inline std::string* DeleteGroupRequest::mutable_id() {
  std::string* _s = _internal_mutable_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.DeleteGroupRequest.id)
  return _s;
}
inline const std::string& DeleteGroupRequest::_internal_id() const {
  return _impl_.id_.Get();
}
inline void DeleteGroupRequest::_internal_set_id(const std::string& value) {
  ;


  _impl_.id_.Set(value, GetArenaForAllocation());
}
inline std::string* DeleteGroupRequest::_internal_mutable_id() {
  ;
  return _impl_.id_.Mutable( GetArenaForAllocation());
}
inline std::string* DeleteGroupRequest::release_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.DeleteGroupRequest.id)
  return _impl_.id_.Release();
}
inline void DeleteGroupRequest::set_allocated_id(std::string* value) {
  _impl_.id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.id_.IsDefault()) {
          _impl_.id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.DeleteGroupRequest.id)
}

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

// DeleteGroupResponse

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

// PutGroupUserAttachRequest

// .keyapis.access_management.v1.UserGroup user_group = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool PutGroupUserAttachRequest::has_user_group() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.user_group_ != nullptr);
  return value;
}
inline void PutGroupUserAttachRequest::clear_user_group() {
  if (_impl_.user_group_ != nullptr) _impl_.user_group_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::UserGroup& PutGroupUserAttachRequest::_internal_user_group() const {
  const ::keyapis::access_management::v1::UserGroup* p = _impl_.user_group_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::UserGroup&>(
      ::keyapis::access_management::v1::_UserGroup_default_instance_);
}
inline const ::keyapis::access_management::v1::UserGroup& PutGroupUserAttachRequest::user_group() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PutGroupUserAttachRequest.user_group)
  return _internal_user_group();
}
inline void PutGroupUserAttachRequest::unsafe_arena_set_allocated_user_group(
    ::keyapis::access_management::v1::UserGroup* user_group) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_group_);
  }
  _impl_.user_group_ = user_group;
  if (user_group) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PutGroupUserAttachRequest.user_group)
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserAttachRequest::release_user_group() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::UserGroup* temp = _impl_.user_group_;
  _impl_.user_group_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserAttachRequest::unsafe_arena_release_user_group() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PutGroupUserAttachRequest.user_group)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::UserGroup* temp = _impl_.user_group_;
  _impl_.user_group_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserAttachRequest::_internal_mutable_user_group() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.user_group_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::UserGroup>(GetArenaForAllocation());
    _impl_.user_group_ = p;
  }
  return _impl_.user_group_;
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserAttachRequest::mutable_user_group() {
  ::keyapis::access_management::v1::UserGroup* _msg = _internal_mutable_user_group();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PutGroupUserAttachRequest.user_group)
  return _msg;
}
inline void PutGroupUserAttachRequest::set_allocated_user_group(::keyapis::access_management::v1::UserGroup* user_group) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.user_group_;
  }
  if (user_group) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(user_group);
    if (message_arena != submessage_arena) {
      user_group = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_group, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.user_group_ = user_group;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PutGroupUserAttachRequest.user_group)
}

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

// PutGroupUserAttachResponse

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

// PutGroupUserDetachRequest

// .keyapis.access_management.v1.UserGroup user_group = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool PutGroupUserDetachRequest::has_user_group() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.user_group_ != nullptr);
  return value;
}
inline void PutGroupUserDetachRequest::clear_user_group() {
  if (_impl_.user_group_ != nullptr) _impl_.user_group_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::UserGroup& PutGroupUserDetachRequest::_internal_user_group() const {
  const ::keyapis::access_management::v1::UserGroup* p = _impl_.user_group_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::UserGroup&>(
      ::keyapis::access_management::v1::_UserGroup_default_instance_);
}
inline const ::keyapis::access_management::v1::UserGroup& PutGroupUserDetachRequest::user_group() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.PutGroupUserDetachRequest.user_group)
  return _internal_user_group();
}
inline void PutGroupUserDetachRequest::unsafe_arena_set_allocated_user_group(
    ::keyapis::access_management::v1::UserGroup* user_group) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_group_);
  }
  _impl_.user_group_ = user_group;
  if (user_group) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.PutGroupUserDetachRequest.user_group)
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserDetachRequest::release_user_group() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::UserGroup* temp = _impl_.user_group_;
  _impl_.user_group_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserDetachRequest::unsafe_arena_release_user_group() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.PutGroupUserDetachRequest.user_group)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::UserGroup* temp = _impl_.user_group_;
  _impl_.user_group_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserDetachRequest::_internal_mutable_user_group() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.user_group_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::UserGroup>(GetArenaForAllocation());
    _impl_.user_group_ = p;
  }
  return _impl_.user_group_;
}
inline ::keyapis::access_management::v1::UserGroup* PutGroupUserDetachRequest::mutable_user_group() {
  ::keyapis::access_management::v1::UserGroup* _msg = _internal_mutable_user_group();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.PutGroupUserDetachRequest.user_group)
  return _msg;
}
inline void PutGroupUserDetachRequest::set_allocated_user_group(::keyapis::access_management::v1::UserGroup* user_group) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.user_group_;
  }
  if (user_group) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(user_group);
    if (message_arena != submessage_arena) {
      user_group = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_group, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.user_group_ = user_group;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.PutGroupUserDetachRequest.user_group)
}

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

// GetGroupUserListRequest

// .keyapis.access_management.v1.GroupUserFilter filter = 1;
inline bool GetGroupUserListRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupUserListRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupUserFilter& GetGroupUserListRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupUserFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupUserFilter&>(
      ::keyapis::access_management::v1::_GroupUserFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupUserFilter& GetGroupUserListRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupUserListRequest.filter)
  return _internal_filter();
}
inline void GetGroupUserListRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupUserFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupUserListRequest.filter)
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserListRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserListRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupUserListRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserListRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupUserFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserListRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupUserFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupUserListRequest.filter)
  return _msg;
}
inline void GetGroupUserListRequest::set_allocated_filter(::keyapis::access_management::v1::GroupUserFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupUserListRequest.filter)
}

// .keyapis.access_management.v1.GroupUserPaging paging = 2;
inline bool GetGroupUserListRequest::has_paging() const {
  return pagination_case() == kPaging;
}
inline bool GetGroupUserListRequest::_internal_has_paging() const {
  return pagination_case() == kPaging;
}
inline void GetGroupUserListRequest::set_has_paging() {
  _impl_._oneof_case_[0] = kPaging;
}
inline void GetGroupUserListRequest::clear_paging() {
  if (pagination_case() == kPaging) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.pagination_.paging_;
    }
    clear_has_pagination();
  }
}
inline ::keyapis::access_management::v1::GroupUserPaging* GetGroupUserListRequest::release_paging() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupUserListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_management::v1::GroupUserPaging* temp = _impl_.pagination_.paging_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::GroupUserPaging& GetGroupUserListRequest::_internal_paging() const {
  return pagination_case() == kPaging
      ? *_impl_.pagination_.paging_
      : reinterpret_cast<::keyapis::access_management::v1::GroupUserPaging&>(::keyapis::access_management::v1::_GroupUserPaging_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupUserPaging& GetGroupUserListRequest::paging() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupUserListRequest.paging)
  return _internal_paging();
}
inline ::keyapis::access_management::v1::GroupUserPaging* GetGroupUserListRequest::unsafe_arena_release_paging() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupUserListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_management::v1::GroupUserPaging* temp = _impl_.pagination_.paging_;
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupUserListRequest::unsafe_arena_set_allocated_paging(::keyapis::access_management::v1::GroupUserPaging* paging) {
  clear_pagination();
  if (paging) {
    set_has_paging();
    _impl_.pagination_.paging_ = paging;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupUserListRequest.paging)
}
inline ::keyapis::access_management::v1::GroupUserPaging* GetGroupUserListRequest::_internal_mutable_paging() {
  if (pagination_case() != kPaging) {
    clear_pagination();
    set_has_paging();
    _impl_.pagination_.paging_ = CreateMaybeMessage< ::keyapis::access_management::v1::GroupUserPaging >(GetArenaForAllocation());
  }
  return _impl_.pagination_.paging_;
}
inline ::keyapis::access_management::v1::GroupUserPaging* GetGroupUserListRequest::mutable_paging() {
  ::keyapis::access_management::v1::GroupUserPaging* _msg = _internal_mutable_paging();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupUserListRequest.paging)
  return _msg;
}

inline bool GetGroupUserListRequest::has_pagination() const {
  return pagination_case() != PAGINATION_NOT_SET;
}
inline void GetGroupUserListRequest::clear_has_pagination() {
  _impl_._oneof_case_[0] = PAGINATION_NOT_SET;
}
inline GetGroupUserListRequest::PaginationCase GetGroupUserListRequest::pagination_case() const {
  return GetGroupUserListRequest::PaginationCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GroupUserPaging

// .keyapis.access_management.v1.GroupUserPaging.OrderByType order_by_type = 1;
inline void GroupUserPaging::clear_order_by_type() {
  _impl_.order_by_type_ = 0;
}
inline ::keyapis::access_management::v1::GroupUserPaging_OrderByType GroupUserPaging::order_by_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupUserPaging.order_by_type)
  return _internal_order_by_type();
}
inline void GroupUserPaging::set_order_by_type(::keyapis::access_management::v1::GroupUserPaging_OrderByType value) {
   _internal_set_order_by_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserPaging.order_by_type)
}
inline ::keyapis::access_management::v1::GroupUserPaging_OrderByType GroupUserPaging::_internal_order_by_type() const {
  return static_cast<::keyapis::access_management::v1::GroupUserPaging_OrderByType>(_impl_.order_by_type_);
}
inline void GroupUserPaging::_internal_set_order_by_type(::keyapis::access_management::v1::GroupUserPaging_OrderByType value) {
  ;
  _impl_.order_by_type_ = value;
}

// .keyapis.access_management.v1.GroupUserPaging.DirectionType direction_type = 2;
inline void GroupUserPaging::clear_direction_type() {
  _impl_.direction_type_ = 0;
}
inline ::keyapis::access_management::v1::GroupUserPaging_DirectionType GroupUserPaging::direction_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupUserPaging.direction_type)
  return _internal_direction_type();
}
inline void GroupUserPaging::set_direction_type(::keyapis::access_management::v1::GroupUserPaging_DirectionType value) {
   _internal_set_direction_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserPaging.direction_type)
}
inline ::keyapis::access_management::v1::GroupUserPaging_DirectionType GroupUserPaging::_internal_direction_type() const {
  return static_cast<::keyapis::access_management::v1::GroupUserPaging_DirectionType>(_impl_.direction_type_);
}
inline void GroupUserPaging::_internal_set_direction_type(::keyapis::access_management::v1::GroupUserPaging_DirectionType value) {
  ;
  _impl_.direction_type_ = value;
}

// int32 limit = 3;
inline void GroupUserPaging::clear_limit() {
  _impl_.limit_ = 0;
}
inline ::int32_t GroupUserPaging::limit() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupUserPaging.limit)
  return _internal_limit();
}
inline void GroupUserPaging::set_limit(::int32_t value) {
  _internal_set_limit(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserPaging.limit)
}
inline ::int32_t GroupUserPaging::_internal_limit() const {
  return _impl_.limit_;
}
inline void GroupUserPaging::_internal_set_limit(::int32_t value) {
  ;
  _impl_.limit_ = value;
}

// int32 offset = 4;
inline void GroupUserPaging::clear_offset() {
  _impl_.offset_ = 0;
}
inline ::int32_t GroupUserPaging::offset() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupUserPaging.offset)
  return _internal_offset();
}
inline void GroupUserPaging::set_offset(::int32_t value) {
  _internal_set_offset(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserPaging.offset)
}
inline ::int32_t GroupUserPaging::_internal_offset() const {
  return _impl_.offset_;
}
inline void GroupUserPaging::_internal_set_offset(::int32_t value) {
  ;
  _impl_.offset_ = value;
}

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

// GroupUserFilter

// repeated string group_ids = 1;
inline int GroupUserFilter::_internal_group_ids_size() const {
  return _impl_.group_ids_.size();
}
inline int GroupUserFilter::group_ids_size() const {
  return _internal_group_ids_size();
}
inline void GroupUserFilter::clear_group_ids() {
  _internal_mutable_group_ids()->Clear();
}
inline std::string* GroupUserFilter::add_group_ids() {
  std::string* _s = _internal_add_group_ids();
  // @@protoc_insertion_point(field_add_mutable:keyapis.access_management.v1.GroupUserFilter.group_ids)
  return _s;
}
inline const std::string& GroupUserFilter::group_ids(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupUserFilter.group_ids)
  return _internal_group_ids(index);
}
inline std::string* GroupUserFilter::mutable_group_ids(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupUserFilter.group_ids)
  return _internal_mutable_group_ids()->Mutable(index);
}
inline void GroupUserFilter::set_group_ids(int index, const std::string& value) {
  _internal_mutable_group_ids()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::set_group_ids(int index, std::string&& value) {
  _internal_mutable_group_ids()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::set_group_ids(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_group_ids()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::set_group_ids(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_group_ids()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::set_group_ids(int index, absl::string_view value) {
  _internal_mutable_group_ids()->Mutable(index)->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_set_string_piece:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::add_group_ids(const std::string& value) {
  _internal_mutable_group_ids()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::add_group_ids(std::string&& value) {
  _internal_mutable_group_ids()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::add_group_ids(const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_group_ids()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::add_group_ids(const char* value, std::size_t size) {
  _internal_mutable_group_ids()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline void GroupUserFilter::add_group_ids(absl::string_view value) {
  _internal_mutable_group_ids()->Add()->assign(value.data(), value.size());
  // @@protoc_insertion_point(field_add_string_piece:keyapis.access_management.v1.GroupUserFilter.group_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
GroupUserFilter::group_ids() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.GroupUserFilter.group_ids)
  return _internal_group_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* GroupUserFilter::mutable_group_ids() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.GroupUserFilter.group_ids)
  return _internal_mutable_group_ids();
}
inline const std::string& GroupUserFilter::_internal_group_ids(int index) const {
  return _internal_group_ids().Get(index);
}
inline std::string* GroupUserFilter::_internal_add_group_ids() {
  return _internal_mutable_group_ids()->Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
GroupUserFilter::_internal_group_ids() const {
  return _impl_.group_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
GroupUserFilter::_internal_mutable_group_ids() {
  return &_impl_.group_ids_;
}

// repeated string user_ids = 2;
inline int GroupUserFilter::_internal_user_ids_size() const {
  return _impl_.user_ids_.size();
}
inline int GroupUserFilter::user_ids_size() const {
  return _internal_user_ids_size();
}
inline void GroupUserFilter::clear_user_ids() {
  _internal_mutable_user_ids()->Clear();
}
inline std::string* GroupUserFilter::add_user_ids() {
  std::string* _s = _internal_add_user_ids();
  // @@protoc_insertion_point(field_add_mutable:keyapis.access_management.v1.GroupUserFilter.user_ids)
  return _s;
}
inline const std::string& GroupUserFilter::user_ids(int index) const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupUserFilter.user_ids)
  return _internal_user_ids(index);
}
inline std::string* GroupUserFilter::mutable_user_ids(int index) {
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupUserFilter.user_ids)
  return _internal_mutable_user_ids()->Mutable(index);
}
inline void GroupUserFilter::set_user_ids(int index, const std::string& value) {
  _internal_mutable_user_ids()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::set_user_ids(int index, std::string&& value) {
  _internal_mutable_user_ids()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::set_user_ids(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_user_ids()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::set_user_ids(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_user_ids()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::set_user_ids(int index, absl::string_view value) {
  _internal_mutable_user_ids()->Mutable(index)->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_set_string_piece:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::add_user_ids(const std::string& value) {
  _internal_mutable_user_ids()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::add_user_ids(std::string&& value) {
  _internal_mutable_user_ids()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::add_user_ids(const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_user_ids()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::add_user_ids(const char* value, std::size_t size) {
  _internal_mutable_user_ids()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline void GroupUserFilter::add_user_ids(absl::string_view value) {
  _internal_mutable_user_ids()->Add()->assign(value.data(), value.size());
  // @@protoc_insertion_point(field_add_string_piece:keyapis.access_management.v1.GroupUserFilter.user_ids)
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
GroupUserFilter::user_ids() const {
  // @@protoc_insertion_point(field_list:keyapis.access_management.v1.GroupUserFilter.user_ids)
  return _internal_user_ids();
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* GroupUserFilter::mutable_user_ids() {
  // @@protoc_insertion_point(field_mutable_list:keyapis.access_management.v1.GroupUserFilter.user_ids)
  return _internal_mutable_user_ids();
}
inline const std::string& GroupUserFilter::_internal_user_ids(int index) const {
  return _internal_user_ids().Get(index);
}
inline std::string* GroupUserFilter::_internal_add_user_ids() {
  return _internal_mutable_user_ids()->Add();
}
inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
GroupUserFilter::_internal_user_ids() const {
  return _impl_.user_ids_;
}
inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
GroupUserFilter::_internal_mutable_user_ids() {
  return &_impl_.user_ids_;
}

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

// GetGroupUserListResponse

// .keyapis.access_management.v1.UserGroup data = 1;
inline bool GetGroupUserListResponse::has_data() const {
  return type_case() == kData;
}
inline bool GetGroupUserListResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void GetGroupUserListResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupUserListResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::UserGroup* GetGroupUserListResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupUserListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::UserGroup* 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::access_management::v1::UserGroup& GetGroupUserListResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_management::v1::UserGroup&>(::keyapis::access_management::v1::_UserGroup_default_instance_);
}
inline const ::keyapis::access_management::v1::UserGroup& GetGroupUserListResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupUserListResponse.data)
  return _internal_data();
}
inline ::keyapis::access_management::v1::UserGroup* GetGroupUserListResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupUserListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::UserGroup* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupUserListResponse::unsafe_arena_set_allocated_data(::keyapis::access_management::v1::UserGroup* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupUserListResponse.data)
}
inline ::keyapis::access_management::v1::UserGroup* GetGroupUserListResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_management::v1::UserGroup >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_management::v1::UserGroup* GetGroupUserListResponse::mutable_data() {
  ::keyapis::access_management::v1::UserGroup* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupUserListResponse.data)
  return _msg;
}

inline bool GetGroupUserListResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupUserListResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupUserListResponse::TypeCase GetGroupUserListResponse::type_case() const {
  return GetGroupUserListResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupUserCountRequest

// .keyapis.access_management.v1.GroupUserFilter filter = 1;
inline bool GetGroupUserCountRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupUserCountRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupUserFilter& GetGroupUserCountRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupUserFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupUserFilter&>(
      ::keyapis::access_management::v1::_GroupUserFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupUserFilter& GetGroupUserCountRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupUserCountRequest.filter)
  return _internal_filter();
}
inline void GetGroupUserCountRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupUserFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupUserCountRequest.filter)
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserCountRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserCountRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupUserCountRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupUserFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserCountRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupUserFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupUserFilter* GetGroupUserCountRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupUserFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupUserCountRequest.filter)
  return _msg;
}
inline void GetGroupUserCountRequest::set_allocated_filter(::keyapis::access_management::v1::GroupUserFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupUserCountRequest.filter)
}

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

// GetGroupUserCountResponse

// int32 data = 1;
inline bool GetGroupUserCountResponse::has_data() const {
  return type_case() == kData;
}
inline void GetGroupUserCountResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupUserCountResponse::clear_data() {
  if (type_case() == kData) {
    _impl_.type_.data_ = 0;
    clear_has_type();
  }
}
inline ::int32_t GetGroupUserCountResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupUserCountResponse.data)
  return _internal_data();
}
inline void GetGroupUserCountResponse::set_data(::int32_t value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GetGroupUserCountResponse.data)
}
inline ::int32_t GetGroupUserCountResponse::_internal_data() const {
  if (type_case() == kData) {
    return _impl_.type_.data_;
  }
  return 0;
}
inline void GetGroupUserCountResponse::_internal_set_data(::int32_t value) {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
  }
  _impl_.type_.data_ = value;
}

inline bool GetGroupUserCountResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupUserCountResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupUserCountResponse::TypeCase GetGroupUserCountResponse::type_case() const {
  return GetGroupUserCountResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// PutGroupUserDetachResponse

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

// GetGroupClaimCountRequest

// .keyapis.access_management.v1.GroupClaimFilter filter = 1;
inline bool GetGroupClaimCountRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupClaimCountRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupClaimFilter& GetGroupClaimCountRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupClaimFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupClaimFilter&>(
      ::keyapis::access_management::v1::_GroupClaimFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupClaimFilter& GetGroupClaimCountRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimCountRequest.filter)
  return _internal_filter();
}
inline void GetGroupClaimCountRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupClaimFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimCountRequest.filter)
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimCountRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupClaimFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimCountRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimCountRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupClaimFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimCountRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimCountRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupClaimFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimCountRequest.filter)
  return _msg;
}
inline void GetGroupClaimCountRequest::set_allocated_filter(::keyapis::access_management::v1::GroupClaimFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupClaimCountRequest.filter)
}

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

// GetGroupClaimCountResponse

// int32 data = 1;
inline bool GetGroupClaimCountResponse::has_data() const {
  return type_case() == kData;
}
inline void GetGroupClaimCountResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupClaimCountResponse::clear_data() {
  if (type_case() == kData) {
    _impl_.type_.data_ = 0;
    clear_has_type();
  }
}
inline ::int32_t GetGroupClaimCountResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimCountResponse.data)
  return _internal_data();
}
inline void GetGroupClaimCountResponse::set_data(::int32_t value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GetGroupClaimCountResponse.data)
}
inline ::int32_t GetGroupClaimCountResponse::_internal_data() const {
  if (type_case() == kData) {
    return _impl_.type_.data_;
  }
  return 0;
}
inline void GetGroupClaimCountResponse::_internal_set_data(::int32_t value) {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
  }
  _impl_.type_.data_ = value;
}

inline bool GetGroupClaimCountResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupClaimCountResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupClaimCountResponse::TypeCase GetGroupClaimCountResponse::type_case() const {
  return GetGroupClaimCountResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupClaimExistRequest

// .keyapis.access_management.v1.GroupClaimFilter filter = 1;
inline bool GetGroupClaimExistRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupClaimExistRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupClaimFilter& GetGroupClaimExistRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupClaimFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupClaimFilter&>(
      ::keyapis::access_management::v1::_GroupClaimFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupClaimFilter& GetGroupClaimExistRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimExistRequest.filter)
  return _internal_filter();
}
inline void GetGroupClaimExistRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupClaimFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimExistRequest.filter)
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimExistRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupClaimFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimExistRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimExistRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupClaimFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimExistRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimExistRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupClaimFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimExistRequest.filter)
  return _msg;
}
inline void GetGroupClaimExistRequest::set_allocated_filter(::keyapis::access_management::v1::GroupClaimFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupClaimExistRequest.filter)
}

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

// GetGroupClaimExistResponse_Error_ClaimFilterEmptyError

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

// GetGroupClaimExistResponse_Error

// .keyapis.access_management.v1.GetGroupClaimExistResponse.Error.ClaimFilterEmptyError claim_filter_empty = 1;
inline bool GetGroupClaimExistResponse_Error::has_claim_filter_empty() const {
  return reason_case() == kClaimFilterEmpty;
}
inline bool GetGroupClaimExistResponse_Error::_internal_has_claim_filter_empty() const {
  return reason_case() == kClaimFilterEmpty;
}
inline void GetGroupClaimExistResponse_Error::set_has_claim_filter_empty() {
  _impl_._oneof_case_[0] = kClaimFilterEmpty;
}
inline void GetGroupClaimExistResponse_Error::clear_claim_filter_empty() {
  if (reason_case() == kClaimFilterEmpty) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.reason_.claim_filter_empty_;
    }
    clear_has_reason();
  }
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* GetGroupClaimExistResponse_Error::release_claim_filter_empty() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimExistResponse.Error.claim_filter_empty)
  if (reason_case() == kClaimFilterEmpty) {
    clear_has_reason();
    ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* temp = _impl_.reason_.claim_filter_empty_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.claim_filter_empty_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& GetGroupClaimExistResponse_Error::_internal_claim_filter_empty() const {
  return reason_case() == kClaimFilterEmpty
      ? *_impl_.reason_.claim_filter_empty_
      : reinterpret_cast<::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError&>(::keyapis::access_management::v1::_GetGroupClaimExistResponse_Error_ClaimFilterEmptyError_default_instance_);
}
inline const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError& GetGroupClaimExistResponse_Error::claim_filter_empty() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimExistResponse.Error.claim_filter_empty)
  return _internal_claim_filter_empty();
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* GetGroupClaimExistResponse_Error::unsafe_arena_release_claim_filter_empty() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupClaimExistResponse.Error.claim_filter_empty)
  if (reason_case() == kClaimFilterEmpty) {
    clear_has_reason();
    ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* temp = _impl_.reason_.claim_filter_empty_;
    _impl_.reason_.claim_filter_empty_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupClaimExistResponse_Error::unsafe_arena_set_allocated_claim_filter_empty(::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* claim_filter_empty) {
  clear_reason();
  if (claim_filter_empty) {
    set_has_claim_filter_empty();
    _impl_.reason_.claim_filter_empty_ = claim_filter_empty;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimExistResponse.Error.claim_filter_empty)
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* GetGroupClaimExistResponse_Error::_internal_mutable_claim_filter_empty() {
  if (reason_case() != kClaimFilterEmpty) {
    clear_reason();
    set_has_claim_filter_empty();
    _impl_.reason_.claim_filter_empty_ = CreateMaybeMessage< ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError >(GetArenaForAllocation());
  }
  return _impl_.reason_.claim_filter_empty_;
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* GetGroupClaimExistResponse_Error::mutable_claim_filter_empty() {
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error_ClaimFilterEmptyError* _msg = _internal_mutable_claim_filter_empty();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimExistResponse.Error.claim_filter_empty)
  return _msg;
}

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

// GetGroupClaimExistResponse

// bool data = 1;
inline bool GetGroupClaimExistResponse::has_data() const {
  return type_case() == kData;
}
inline void GetGroupClaimExistResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupClaimExistResponse::clear_data() {
  if (type_case() == kData) {
    _impl_.type_.data_ = false;
    clear_has_type();
  }
}
inline bool GetGroupClaimExistResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimExistResponse.data)
  return _internal_data();
}
inline void GetGroupClaimExistResponse::set_data(bool value) {
  _internal_set_data(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GetGroupClaimExistResponse.data)
}
inline bool GetGroupClaimExistResponse::_internal_data() const {
  if (type_case() == kData) {
    return _impl_.type_.data_;
  }
  return false;
}
inline void GetGroupClaimExistResponse::_internal_set_data(bool value) {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
  }
  _impl_.type_.data_ = value;
}

// .keyapis.access_management.v1.GetGroupClaimExistResponse.Error error = 2;
inline bool GetGroupClaimExistResponse::has_error() const {
  return type_case() == kError;
}
inline bool GetGroupClaimExistResponse::_internal_has_error() const {
  return type_case() == kError;
}
inline void GetGroupClaimExistResponse::set_has_error() {
  _impl_._oneof_case_[0] = kError;
}
inline void GetGroupClaimExistResponse::clear_error() {
  if (type_case() == kError) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.error_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* GetGroupClaimExistResponse::release_error() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimExistResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupClaimExistResponse_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::access_management::v1::GetGroupClaimExistResponse_Error& GetGroupClaimExistResponse::_internal_error() const {
  return type_case() == kError
      ? *_impl_.type_.error_
      : reinterpret_cast<::keyapis::access_management::v1::GetGroupClaimExistResponse_Error&>(::keyapis::access_management::v1::_GetGroupClaimExistResponse_Error_default_instance_);
}
inline const ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error& GetGroupClaimExistResponse::error() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimExistResponse.error)
  return _internal_error();
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* GetGroupClaimExistResponse::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupClaimExistResponse.error)
  if (type_case() == kError) {
    clear_has_type();
    ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* temp = _impl_.type_.error_;
    _impl_.type_.error_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupClaimExistResponse::unsafe_arena_set_allocated_error(::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* error) {
  clear_type();
  if (error) {
    set_has_error();
    _impl_.type_.error_ = error;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimExistResponse.error)
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* GetGroupClaimExistResponse::_internal_mutable_error() {
  if (type_case() != kError) {
    clear_type();
    set_has_error();
    _impl_.type_.error_ = CreateMaybeMessage< ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error >(GetArenaForAllocation());
  }
  return _impl_.type_.error_;
}
inline ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* GetGroupClaimExistResponse::mutable_error() {
  ::keyapis::access_management::v1::GetGroupClaimExistResponse_Error* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimExistResponse.error)
  return _msg;
}

inline bool GetGroupClaimExistResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupClaimExistResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupClaimExistResponse::TypeCase GetGroupClaimExistResponse::type_case() const {
  return GetGroupClaimExistResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupClaimListRequest

// .keyapis.access_management.v1.GroupClaimFilter filter = 1;
inline bool GetGroupClaimListRequest::has_filter() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.filter_ != nullptr);
  return value;
}
inline void GetGroupClaimListRequest::clear_filter() {
  if (_impl_.filter_ != nullptr) _impl_.filter_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::keyapis::access_management::v1::GroupClaimFilter& GetGroupClaimListRequest::_internal_filter() const {
  const ::keyapis::access_management::v1::GroupClaimFilter* p = _impl_.filter_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupClaimFilter&>(
      ::keyapis::access_management::v1::_GroupClaimFilter_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupClaimFilter& GetGroupClaimListRequest::filter() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimListRequest.filter)
  return _internal_filter();
}
inline void GetGroupClaimListRequest::unsafe_arena_set_allocated_filter(
    ::keyapis::access_management::v1::GroupClaimFilter* filter) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.filter_);
  }
  _impl_.filter_ = filter;
  if (filter) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimListRequest.filter)
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimListRequest::release_filter() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupClaimFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimListRequest::unsafe_arena_release_filter() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimListRequest.filter)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::keyapis::access_management::v1::GroupClaimFilter* temp = _impl_.filter_;
  _impl_.filter_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimListRequest::_internal_mutable_filter() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.filter_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter>(GetArenaForAllocation());
    _impl_.filter_ = p;
  }
  return _impl_.filter_;
}
inline ::keyapis::access_management::v1::GroupClaimFilter* GetGroupClaimListRequest::mutable_filter() {
  ::keyapis::access_management::v1::GroupClaimFilter* _msg = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimListRequest.filter)
  return _msg;
}
inline void GetGroupClaimListRequest::set_allocated_filter(::keyapis::access_management::v1::GroupClaimFilter* filter) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.filter_;
  }
  if (filter) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(filter);
    if (message_arena != submessage_arena) {
      filter = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, filter, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.filter_ = filter;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GetGroupClaimListRequest.filter)
}

// .keyapis.access_management.v1.GroupClaimPaging paging = 2;
inline bool GetGroupClaimListRequest::has_paging() const {
  return pagination_case() == kPaging;
}
inline bool GetGroupClaimListRequest::_internal_has_paging() const {
  return pagination_case() == kPaging;
}
inline void GetGroupClaimListRequest::set_has_paging() {
  _impl_._oneof_case_[0] = kPaging;
}
inline void GetGroupClaimListRequest::clear_paging() {
  if (pagination_case() == kPaging) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.pagination_.paging_;
    }
    clear_has_pagination();
  }
}
inline ::keyapis::access_management::v1::GroupClaimPaging* GetGroupClaimListRequest::release_paging() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_management::v1::GroupClaimPaging* temp = _impl_.pagination_.paging_;
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::keyapis::access_management::v1::GroupClaimPaging& GetGroupClaimListRequest::_internal_paging() const {
  return pagination_case() == kPaging
      ? *_impl_.pagination_.paging_
      : reinterpret_cast<::keyapis::access_management::v1::GroupClaimPaging&>(::keyapis::access_management::v1::_GroupClaimPaging_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupClaimPaging& GetGroupClaimListRequest::paging() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimListRequest.paging)
  return _internal_paging();
}
inline ::keyapis::access_management::v1::GroupClaimPaging* GetGroupClaimListRequest::unsafe_arena_release_paging() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupClaimListRequest.paging)
  if (pagination_case() == kPaging) {
    clear_has_pagination();
    ::keyapis::access_management::v1::GroupClaimPaging* temp = _impl_.pagination_.paging_;
    _impl_.pagination_.paging_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupClaimListRequest::unsafe_arena_set_allocated_paging(::keyapis::access_management::v1::GroupClaimPaging* paging) {
  clear_pagination();
  if (paging) {
    set_has_paging();
    _impl_.pagination_.paging_ = paging;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimListRequest.paging)
}
inline ::keyapis::access_management::v1::GroupClaimPaging* GetGroupClaimListRequest::_internal_mutable_paging() {
  if (pagination_case() != kPaging) {
    clear_pagination();
    set_has_paging();
    _impl_.pagination_.paging_ = CreateMaybeMessage< ::keyapis::access_management::v1::GroupClaimPaging >(GetArenaForAllocation());
  }
  return _impl_.pagination_.paging_;
}
inline ::keyapis::access_management::v1::GroupClaimPaging* GetGroupClaimListRequest::mutable_paging() {
  ::keyapis::access_management::v1::GroupClaimPaging* _msg = _internal_mutable_paging();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimListRequest.paging)
  return _msg;
}

inline bool GetGroupClaimListRequest::has_pagination() const {
  return pagination_case() != PAGINATION_NOT_SET;
}
inline void GetGroupClaimListRequest::clear_has_pagination() {
  _impl_._oneof_case_[0] = PAGINATION_NOT_SET;
}
inline GetGroupClaimListRequest::PaginationCase GetGroupClaimListRequest::pagination_case() const {
  return GetGroupClaimListRequest::PaginationCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// GetGroupClaimListResponse

// .keyapis.access_management.v1.Claim data = 1;
inline bool GetGroupClaimListResponse::has_data() const {
  return type_case() == kData;
}
inline bool GetGroupClaimListResponse::_internal_has_data() const {
  return type_case() == kData;
}
inline void GetGroupClaimListResponse::set_has_data() {
  _impl_._oneof_case_[0] = kData;
}
inline void GetGroupClaimListResponse::clear_data() {
  if (type_case() == kData) {
    if (GetArenaForAllocation() == nullptr) {
      delete _impl_.type_.data_;
    }
    clear_has_type();
  }
}
inline ::keyapis::access_management::v1::Claim* GetGroupClaimListResponse::release_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GetGroupClaimListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Claim* 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::access_management::v1::Claim& GetGroupClaimListResponse::_internal_data() const {
  return type_case() == kData
      ? *_impl_.type_.data_
      : reinterpret_cast<::keyapis::access_management::v1::Claim&>(::keyapis::access_management::v1::_Claim_default_instance_);
}
inline const ::keyapis::access_management::v1::Claim& GetGroupClaimListResponse::data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GetGroupClaimListResponse.data)
  return _internal_data();
}
inline ::keyapis::access_management::v1::Claim* GetGroupClaimListResponse::unsafe_arena_release_data() {
  // @@protoc_insertion_point(field_unsafe_arena_release:keyapis.access_management.v1.GetGroupClaimListResponse.data)
  if (type_case() == kData) {
    clear_has_type();
    ::keyapis::access_management::v1::Claim* temp = _impl_.type_.data_;
    _impl_.type_.data_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void GetGroupClaimListResponse::unsafe_arena_set_allocated_data(::keyapis::access_management::v1::Claim* data) {
  clear_type();
  if (data) {
    set_has_data();
    _impl_.type_.data_ = data;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GetGroupClaimListResponse.data)
}
inline ::keyapis::access_management::v1::Claim* GetGroupClaimListResponse::_internal_mutable_data() {
  if (type_case() != kData) {
    clear_type();
    set_has_data();
    _impl_.type_.data_ = CreateMaybeMessage< ::keyapis::access_management::v1::Claim >(GetArenaForAllocation());
  }
  return _impl_.type_.data_;
}
inline ::keyapis::access_management::v1::Claim* GetGroupClaimListResponse::mutable_data() {
  ::keyapis::access_management::v1::Claim* _msg = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GetGroupClaimListResponse.data)
  return _msg;
}

inline bool GetGroupClaimListResponse::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void GetGroupClaimListResponse::clear_has_type() {
  _impl_._oneof_case_[0] = TYPE_NOT_SET;
}
inline GetGroupClaimListResponse::TypeCase GetGroupClaimListResponse::type_case() const {
  return GetGroupClaimListResponse::TypeCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

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

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

// GroupClaimFilter_UserData

// map<string, string> claims = 1;
inline int GroupClaimFilter_UserData::_internal_claims_size() const {
  return _impl_.claims_.size();
}
inline int GroupClaimFilter_UserData::claims_size() const {
  return _internal_claims_size();
}
inline void GroupClaimFilter_UserData::clear_claims() {
  _impl_.claims_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupClaimFilter_UserData::_internal_claims() const {
  return _impl_.claims_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupClaimFilter_UserData::claims() const {
  // @@protoc_insertion_point(field_map:keyapis.access_management.v1.GroupClaimFilter.UserData.claims)
  return _internal_claims();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupClaimFilter_UserData::_internal_mutable_claims() {
  return _impl_.claims_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupClaimFilter_UserData::mutable_claims() {
  // @@protoc_insertion_point(field_mutable_map:keyapis.access_management.v1.GroupClaimFilter.UserData.claims)
  return _internal_mutable_claims();
}

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

// GroupClaimFilter

// .google.protobuf.StringValue user_id = 1;
inline bool GroupClaimFilter::has_user_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.user_id_ != nullptr);
  return value;
}
inline const ::PROTOBUF_NAMESPACE_ID::StringValue& GroupClaimFilter::_internal_user_id() const {
  const ::PROTOBUF_NAMESPACE_ID::StringValue* p = _impl_.user_id_;
  return p != nullptr ? *p : reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::StringValue&>(
      ::PROTOBUF_NAMESPACE_ID::_StringValue_default_instance_);
}
inline const ::PROTOBUF_NAMESPACE_ID::StringValue& GroupClaimFilter::user_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimFilter.user_id)
  return _internal_user_id();
}
inline void GroupClaimFilter::unsafe_arena_set_allocated_user_id(
    ::PROTOBUF_NAMESPACE_ID::StringValue* user_id) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_id_);
  }
  _impl_.user_id_ = user_id;
  if (user_id) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GroupClaimFilter.user_id)
}
inline ::PROTOBUF_NAMESPACE_ID::StringValue* GroupClaimFilter::release_user_id() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::StringValue* temp = _impl_.user_id_;
  _impl_.user_id_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::StringValue* GroupClaimFilter::unsafe_arena_release_user_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupClaimFilter.user_id)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::PROTOBUF_NAMESPACE_ID::StringValue* temp = _impl_.user_id_;
  _impl_.user_id_ = nullptr;
  return temp;
}
inline ::PROTOBUF_NAMESPACE_ID::StringValue* GroupClaimFilter::_internal_mutable_user_id() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.user_id_ == nullptr) {
    auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::StringValue>(GetArenaForAllocation());
    _impl_.user_id_ = p;
  }
  return _impl_.user_id_;
}
inline ::PROTOBUF_NAMESPACE_ID::StringValue* GroupClaimFilter::mutable_user_id() {
  ::PROTOBUF_NAMESPACE_ID::StringValue* _msg = _internal_mutable_user_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupClaimFilter.user_id)
  return _msg;
}
inline void GroupClaimFilter::set_allocated_user_id(::PROTOBUF_NAMESPACE_ID::StringValue* user_id) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_id_);
  }
  if (user_id) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(
                reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(user_id));
    if (message_arena != submessage_arena) {
      user_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_id, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.user_id_ = user_id;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupClaimFilter.user_id)
}

// map<string, string> claims = 2;
inline int GroupClaimFilter::_internal_claims_size() const {
  return _impl_.claims_.size();
}
inline int GroupClaimFilter::claims_size() const {
  return _internal_claims_size();
}
inline void GroupClaimFilter::clear_claims() {
  _impl_.claims_.Clear();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupClaimFilter::_internal_claims() const {
  return _impl_.claims_.GetMap();
}
inline const ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >&
GroupClaimFilter::claims() const {
  // @@protoc_insertion_point(field_map:keyapis.access_management.v1.GroupClaimFilter.claims)
  return _internal_claims();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupClaimFilter::_internal_mutable_claims() {
  return _impl_.claims_.MutableMap();
}
inline ::PROTOBUF_NAMESPACE_ID::Map< std::string, std::string >*
GroupClaimFilter::mutable_claims() {
  // @@protoc_insertion_point(field_mutable_map:keyapis.access_management.v1.GroupClaimFilter.claims)
  return _internal_mutable_claims();
}

// .keyapis.access_management.v1.GroupClaimFilter.UserData user_data = 3;
inline bool GroupClaimFilter::has_user_data() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.user_data_ != nullptr);
  return value;
}
inline void GroupClaimFilter::clear_user_data() {
  if (_impl_.user_data_ != nullptr) _impl_.user_data_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const ::keyapis::access_management::v1::GroupClaimFilter_UserData& GroupClaimFilter::_internal_user_data() const {
  const ::keyapis::access_management::v1::GroupClaimFilter_UserData* p = _impl_.user_data_;
  return p != nullptr ? *p : reinterpret_cast<const ::keyapis::access_management::v1::GroupClaimFilter_UserData&>(
      ::keyapis::access_management::v1::_GroupClaimFilter_UserData_default_instance_);
}
inline const ::keyapis::access_management::v1::GroupClaimFilter_UserData& GroupClaimFilter::user_data() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimFilter.user_data)
  return _internal_user_data();
}
inline void GroupClaimFilter::unsafe_arena_set_allocated_user_data(
    ::keyapis::access_management::v1::GroupClaimFilter_UserData* user_data) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.user_data_);
  }
  _impl_.user_data_ = user_data;
  if (user_data) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:keyapis.access_management.v1.GroupClaimFilter.user_data)
}
inline ::keyapis::access_management::v1::GroupClaimFilter_UserData* GroupClaimFilter::release_user_data() {
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::keyapis::access_management::v1::GroupClaimFilter_UserData* temp = _impl_.user_data_;
  _impl_.user_data_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter_UserData* GroupClaimFilter::unsafe_arena_release_user_data() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupClaimFilter.user_data)
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::keyapis::access_management::v1::GroupClaimFilter_UserData* temp = _impl_.user_data_;
  _impl_.user_data_ = nullptr;
  return temp;
}
inline ::keyapis::access_management::v1::GroupClaimFilter_UserData* GroupClaimFilter::_internal_mutable_user_data() {
  _impl_._has_bits_[0] |= 0x00000002u;
  if (_impl_.user_data_ == nullptr) {
    auto* p = CreateMaybeMessage<::keyapis::access_management::v1::GroupClaimFilter_UserData>(GetArenaForAllocation());
    _impl_.user_data_ = p;
  }
  return _impl_.user_data_;
}
inline ::keyapis::access_management::v1::GroupClaimFilter_UserData* GroupClaimFilter::mutable_user_data() {
  ::keyapis::access_management::v1::GroupClaimFilter_UserData* _msg = _internal_mutable_user_data();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupClaimFilter.user_data)
  return _msg;
}
inline void GroupClaimFilter::set_allocated_user_data(::keyapis::access_management::v1::GroupClaimFilter_UserData* user_data) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.user_data_;
  }
  if (user_data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(user_data);
    if (message_arena != submessage_arena) {
      user_data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, user_data, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.user_data_ = user_data;
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupClaimFilter.user_data)
}

// string api_key_hash = 4;
inline void GroupClaimFilter::clear_api_key_hash() {
  _impl_.api_key_hash_.ClearToEmpty();
}
inline const std::string& GroupClaimFilter::api_key_hash() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimFilter.api_key_hash)
  return _internal_api_key_hash();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void GroupClaimFilter::set_api_key_hash(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.api_key_hash_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupClaimFilter.api_key_hash)
}
inline std::string* GroupClaimFilter::mutable_api_key_hash() {
  std::string* _s = _internal_mutable_api_key_hash();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupClaimFilter.api_key_hash)
  return _s;
}
inline const std::string& GroupClaimFilter::_internal_api_key_hash() const {
  return _impl_.api_key_hash_.Get();
}
inline void GroupClaimFilter::_internal_set_api_key_hash(const std::string& value) {
  ;


  _impl_.api_key_hash_.Set(value, GetArenaForAllocation());
}
inline std::string* GroupClaimFilter::_internal_mutable_api_key_hash() {
  ;
  return _impl_.api_key_hash_.Mutable( GetArenaForAllocation());
}
inline std::string* GroupClaimFilter::release_api_key_hash() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupClaimFilter.api_key_hash)
  return _impl_.api_key_hash_.Release();
}
inline void GroupClaimFilter::set_allocated_api_key_hash(std::string* value) {
  _impl_.api_key_hash_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.api_key_hash_.IsDefault()) {
          _impl_.api_key_hash_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupClaimFilter.api_key_hash)
}

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

// GroupClaimPaging

// .keyapis.access_management.v1.GroupClaimPaging.OrderByType order_by_type = 1;
inline void GroupClaimPaging::clear_order_by_type() {
  _impl_.order_by_type_ = 0;
}
inline ::keyapis::access_management::v1::GroupClaimPaging_OrderByType GroupClaimPaging::order_by_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimPaging.order_by_type)
  return _internal_order_by_type();
}
inline void GroupClaimPaging::set_order_by_type(::keyapis::access_management::v1::GroupClaimPaging_OrderByType value) {
   _internal_set_order_by_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupClaimPaging.order_by_type)
}
inline ::keyapis::access_management::v1::GroupClaimPaging_OrderByType GroupClaimPaging::_internal_order_by_type() const {
  return static_cast<::keyapis::access_management::v1::GroupClaimPaging_OrderByType>(_impl_.order_by_type_);
}
inline void GroupClaimPaging::_internal_set_order_by_type(::keyapis::access_management::v1::GroupClaimPaging_OrderByType value) {
  ;
  _impl_.order_by_type_ = value;
}

// .keyapis.access_management.v1.GroupClaimPaging.DirectionType direction_type = 2;
inline void GroupClaimPaging::clear_direction_type() {
  _impl_.direction_type_ = 0;
}
inline ::keyapis::access_management::v1::GroupClaimPaging_DirectionType GroupClaimPaging::direction_type() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimPaging.direction_type)
  return _internal_direction_type();
}
inline void GroupClaimPaging::set_direction_type(::keyapis::access_management::v1::GroupClaimPaging_DirectionType value) {
   _internal_set_direction_type(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupClaimPaging.direction_type)
}
inline ::keyapis::access_management::v1::GroupClaimPaging_DirectionType GroupClaimPaging::_internal_direction_type() const {
  return static_cast<::keyapis::access_management::v1::GroupClaimPaging_DirectionType>(_impl_.direction_type_);
}
inline void GroupClaimPaging::_internal_set_direction_type(::keyapis::access_management::v1::GroupClaimPaging_DirectionType value) {
  ;
  _impl_.direction_type_ = value;
}

// int32 limit = 3;
inline void GroupClaimPaging::clear_limit() {
  _impl_.limit_ = 0;
}
inline ::int32_t GroupClaimPaging::limit() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimPaging.limit)
  return _internal_limit();
}
inline void GroupClaimPaging::set_limit(::int32_t value) {
  _internal_set_limit(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupClaimPaging.limit)
}
inline ::int32_t GroupClaimPaging::_internal_limit() const {
  return _impl_.limit_;
}
inline void GroupClaimPaging::_internal_set_limit(::int32_t value) {
  ;
  _impl_.limit_ = value;
}

// int32 offset = 4;
inline void GroupClaimPaging::clear_offset() {
  _impl_.offset_ = 0;
}
inline ::int32_t GroupClaimPaging::offset() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupClaimPaging.offset)
  return _internal_offset();
}
inline void GroupClaimPaging::set_offset(::int32_t value) {
  _internal_set_offset(value);
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupClaimPaging.offset)
}
inline ::int32_t GroupClaimPaging::_internal_offset() const {
  return _impl_.offset_;
}
inline void GroupClaimPaging::_internal_set_offset(::int32_t value) {
  ;
  _impl_.offset_ = value;
}

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

// ValidationError

// string path = 1 [(.google.api.field_behavior) = REQUIRED];
inline void ValidationError::clear_path() {
  _impl_.path_.ClearToEmpty();
}
inline const std::string& ValidationError::path() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.ValidationError.path)
  return _internal_path();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void ValidationError::set_path(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.path_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.ValidationError.path)
}
inline std::string* ValidationError::mutable_path() {
  std::string* _s = _internal_mutable_path();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.ValidationError.path)
  return _s;
}
inline const std::string& ValidationError::_internal_path() const {
  return _impl_.path_.Get();
}
inline void ValidationError::_internal_set_path(const std::string& value) {
  ;


  _impl_.path_.Set(value, GetArenaForAllocation());
}
inline std::string* ValidationError::_internal_mutable_path() {
  ;
  return _impl_.path_.Mutable( GetArenaForAllocation());
}
inline std::string* ValidationError::release_path() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.ValidationError.path)
  return _impl_.path_.Release();
}
inline void ValidationError::set_allocated_path(std::string* value) {
  _impl_.path_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.path_.IsDefault()) {
          _impl_.path_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.ValidationError.path)
}

// string message = 2 [(.google.api.field_behavior) = REQUIRED];
inline void ValidationError::clear_message() {
  _impl_.message_.ClearToEmpty();
}
inline const std::string& ValidationError::message() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.ValidationError.message)
  return _internal_message();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void ValidationError::set_message(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.message_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.ValidationError.message)
}
inline std::string* ValidationError::mutable_message() {
  std::string* _s = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.ValidationError.message)
  return _s;
}
inline const std::string& ValidationError::_internal_message() const {
  return _impl_.message_.Get();
}
inline void ValidationError::_internal_set_message(const std::string& value) {
  ;


  _impl_.message_.Set(value, GetArenaForAllocation());
}
inline std::string* ValidationError::_internal_mutable_message() {
  ;
  return _impl_.message_.Mutable( GetArenaForAllocation());
}
inline std::string* ValidationError::release_message() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.ValidationError.message)
  return _impl_.message_.Release();
}
inline void ValidationError::set_allocated_message(std::string* value) {
  _impl_.message_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.message_.IsDefault()) {
          _impl_.message_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.ValidationError.message)
}

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

// GroupTemplateNotFoundError

// string group_template_id = 1 [(.google.api.field_behavior) = REQUIRED];
inline void GroupTemplateNotFoundError::clear_group_template_id() {
  _impl_.group_template_id_.ClearToEmpty();
}
inline const std::string& GroupTemplateNotFoundError::group_template_id() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupTemplateNotFoundError.group_template_id)
  return _internal_group_template_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void GroupTemplateNotFoundError::set_group_template_id(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.group_template_id_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupTemplateNotFoundError.group_template_id)
}
inline std::string* GroupTemplateNotFoundError::mutable_group_template_id() {
  std::string* _s = _internal_mutable_group_template_id();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupTemplateNotFoundError.group_template_id)
  return _s;
}
inline const std::string& GroupTemplateNotFoundError::_internal_group_template_id() const {
  return _impl_.group_template_id_.Get();
}
inline void GroupTemplateNotFoundError::_internal_set_group_template_id(const std::string& value) {
  ;


  _impl_.group_template_id_.Set(value, GetArenaForAllocation());
}
inline std::string* GroupTemplateNotFoundError::_internal_mutable_group_template_id() {
  ;
  return _impl_.group_template_id_.Mutable( GetArenaForAllocation());
}
inline std::string* GroupTemplateNotFoundError::release_group_template_id() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupTemplateNotFoundError.group_template_id)
  return _impl_.group_template_id_.Release();
}
inline void GroupTemplateNotFoundError::set_allocated_group_template_id(std::string* value) {
  _impl_.group_template_id_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.group_template_id_.IsDefault()) {
          _impl_.group_template_id_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupTemplateNotFoundError.group_template_id)
}

// string message = 2 [(.google.api.field_behavior) = REQUIRED];
inline void GroupTemplateNotFoundError::clear_message() {
  _impl_.message_.ClearToEmpty();
}
inline const std::string& GroupTemplateNotFoundError::message() const {
  // @@protoc_insertion_point(field_get:keyapis.access_management.v1.GroupTemplateNotFoundError.message)
  return _internal_message();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void GroupTemplateNotFoundError::set_message(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.message_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:keyapis.access_management.v1.GroupTemplateNotFoundError.message)
}
inline std::string* GroupTemplateNotFoundError::mutable_message() {
  std::string* _s = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:keyapis.access_management.v1.GroupTemplateNotFoundError.message)
  return _s;
}
inline const std::string& GroupTemplateNotFoundError::_internal_message() const {
  return _impl_.message_.Get();
}
inline void GroupTemplateNotFoundError::_internal_set_message(const std::string& value) {
  ;


  _impl_.message_.Set(value, GetArenaForAllocation());
}
inline std::string* GroupTemplateNotFoundError::_internal_mutable_message() {
  ;
  return _impl_.message_.Mutable( GetArenaForAllocation());
}
inline std::string* GroupTemplateNotFoundError::release_message() {
  // @@protoc_insertion_point(field_release:keyapis.access_management.v1.GroupTemplateNotFoundError.message)
  return _impl_.message_.Release();
}
inline void GroupTemplateNotFoundError::set_allocated_message(std::string* value) {
  _impl_.message_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.message_.IsDefault()) {
          _impl_.message_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:keyapis.access_management.v1.GroupTemplateNotFoundError.message)
}

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

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


PROTOBUF_NAMESPACE_OPEN

template <>
struct is_proto_enum<::keyapis::access_management::v1::GroupPaging_OrderByType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::access_management::v1::GroupPaging_DirectionType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::access_management::v1::GroupUserPaging_OrderByType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::access_management::v1::GroupUserPaging_DirectionType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::access_management::v1::GroupClaimPaging_OrderByType> : std::true_type {};
template <>
struct is_proto_enum<::keyapis::access_management::v1::GroupClaimPaging_DirectionType> : std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_keyapis_2faccess_5fmanagement_2fv1_2fkeyapis_5faccess_5fmanagement_5fgroup_5fv1_2eproto_2epb_2eh
