// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: google/pubsub/v1/pubsub.proto
// Protobuf C++ Version: 7.35.1

#ifndef google_2fpubsub_2fv1_2fpubsub_2eproto_2epb_2eh
#define google_2fpubsub_2fv1_2fpubsub_2eproto_2epb_2eh

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

// clang-format off
#include "google/protobuf/runtime_version.h"
#if PROTOBUF_VERSION != 7035001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_bases.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/message.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_type_handler.h"  // IWYU pragma: export
#include "google/protobuf/map_entry.h"
#include "google/protobuf/map_field.h"
#include "google/protobuf/generated_enum_reflection.h"
#include "google/protobuf/unknown_field_set.h"
#include "google/api/annotations.pb.h"
#include "google/api/client.pb.h"
#include "google/api/field_behavior.pb.h"
#include "google/api/resource.pb.h"
#include "google/protobuf/duration.pb.h"
#include "google/protobuf/empty.pb.h"
#include "google/protobuf/field_mask.pb.h"
#include "google/protobuf/timestamp.pb.h"
#include "google/pubsub/v1/schema.pb.h"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_google_2fpubsub_2fv1_2fpubsub_2eproto

namespace google {
namespace protobuf {
namespace internal {
template <typename T>
::absl::string_view GetAnyMessageName();
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto {
  static const ::uint32_t offsets[];
};
extern "C" {
extern const ::google::protobuf::internal::DescriptorTable descriptor_table_google_2fpubsub_2fv1_2fpubsub_2eproto;
}  // extern "C"
namespace google {
namespace pubsub {
namespace v1 {
enum BigQueryConfig_State : int;
extern const uint32_t BigQueryConfig_State_internal_data_[];
enum CloudStorageConfig_State : int;
extern const uint32_t CloudStorageConfig_State_internal_data_[];
enum IngestionDataSourceSettings_AwsKinesis_State : int;
extern const uint32_t IngestionDataSourceSettings_AwsKinesis_State_internal_data_[];
enum IngestionDataSourceSettings_CloudStorage_State : int;
extern const uint32_t IngestionDataSourceSettings_CloudStorage_State_internal_data_[];
enum PlatformLogsSettings_Severity : int;
extern const uint32_t PlatformLogsSettings_Severity_internal_data_[];
enum Subscription_State : int;
extern const uint32_t Subscription_State_internal_data_[];
enum Topic_State : int;
extern const uint32_t Topic_State_internal_data_[];
class AcknowledgeRequest;
struct AcknowledgeRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern AcknowledgeRequestGlobalsTypeInternal AcknowledgeRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull AcknowledgeRequest_class_data_;
#else
extern const AcknowledgeRequestGlobalsTypeInternal AcknowledgeRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class BigQueryConfig;
struct BigQueryConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern BigQueryConfigGlobalsTypeInternal BigQueryConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull BigQueryConfig_class_data_;
#else
extern const BigQueryConfigGlobalsTypeInternal BigQueryConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CloudStorageConfig;
struct CloudStorageConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CloudStorageConfigGlobalsTypeInternal CloudStorageConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull CloudStorageConfig_class_data_;
#else
extern const CloudStorageConfigGlobalsTypeInternal CloudStorageConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CloudStorageConfig_AvroConfig;
struct CloudStorageConfig_AvroConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CloudStorageConfig_AvroConfigGlobalsTypeInternal CloudStorageConfig_AvroConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull CloudStorageConfig_AvroConfig_class_data_;
#else
extern const CloudStorageConfig_AvroConfigGlobalsTypeInternal CloudStorageConfig_AvroConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CloudStorageConfig_TextConfig;
struct CloudStorageConfig_TextConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CloudStorageConfig_TextConfigGlobalsTypeInternal CloudStorageConfig_TextConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull CloudStorageConfig_TextConfig_class_data_;
#else
extern const CloudStorageConfig_TextConfigGlobalsTypeInternal CloudStorageConfig_TextConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CreateSnapshotRequest;
struct CreateSnapshotRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CreateSnapshotRequestGlobalsTypeInternal CreateSnapshotRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull CreateSnapshotRequest_class_data_;
#else
extern const CreateSnapshotRequestGlobalsTypeInternal CreateSnapshotRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class CreateSnapshotRequest_LabelsEntry_DoNotUse;
struct CreateSnapshotRequest_LabelsEntry_DoNotUseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern CreateSnapshotRequest_LabelsEntry_DoNotUseGlobalsTypeInternal CreateSnapshotRequest_LabelsEntry_DoNotUse_globals_;
extern const ::google::protobuf::internal::ClassDataFull CreateSnapshotRequest_LabelsEntry_DoNotUse_class_data_;
#else
extern const CreateSnapshotRequest_LabelsEntry_DoNotUseGlobalsTypeInternal CreateSnapshotRequest_LabelsEntry_DoNotUse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeadLetterPolicy;
struct DeadLetterPolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeadLetterPolicyGlobalsTypeInternal DeadLetterPolicy_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeadLetterPolicy_class_data_;
#else
extern const DeadLetterPolicyGlobalsTypeInternal DeadLetterPolicy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteSnapshotRequest;
struct DeleteSnapshotRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteSnapshotRequestGlobalsTypeInternal DeleteSnapshotRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteSnapshotRequest_class_data_;
#else
extern const DeleteSnapshotRequestGlobalsTypeInternal DeleteSnapshotRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteSubscriptionRequest;
struct DeleteSubscriptionRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteSubscriptionRequestGlobalsTypeInternal DeleteSubscriptionRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteSubscriptionRequest_class_data_;
#else
extern const DeleteSubscriptionRequestGlobalsTypeInternal DeleteSubscriptionRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DeleteTopicRequest;
struct DeleteTopicRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DeleteTopicRequestGlobalsTypeInternal DeleteTopicRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DeleteTopicRequest_class_data_;
#else
extern const DeleteTopicRequestGlobalsTypeInternal DeleteTopicRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DetachSubscriptionRequest;
struct DetachSubscriptionRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DetachSubscriptionRequestGlobalsTypeInternal DetachSubscriptionRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull DetachSubscriptionRequest_class_data_;
#else
extern const DetachSubscriptionRequestGlobalsTypeInternal DetachSubscriptionRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class DetachSubscriptionResponse;
struct DetachSubscriptionResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern DetachSubscriptionResponseGlobalsTypeInternal DetachSubscriptionResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull DetachSubscriptionResponse_class_data_;
#else
extern const DetachSubscriptionResponseGlobalsTypeInternal DetachSubscriptionResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ExpirationPolicy;
struct ExpirationPolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ExpirationPolicyGlobalsTypeInternal ExpirationPolicy_globals_;
extern const ::google::protobuf::internal::ClassDataFull ExpirationPolicy_class_data_;
#else
extern const ExpirationPolicyGlobalsTypeInternal ExpirationPolicy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetSnapshotRequest;
struct GetSnapshotRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetSnapshotRequestGlobalsTypeInternal GetSnapshotRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetSnapshotRequest_class_data_;
#else
extern const GetSnapshotRequestGlobalsTypeInternal GetSnapshotRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetSubscriptionRequest;
struct GetSubscriptionRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetSubscriptionRequestGlobalsTypeInternal GetSubscriptionRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetSubscriptionRequest_class_data_;
#else
extern const GetSubscriptionRequestGlobalsTypeInternal GetSubscriptionRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class GetTopicRequest;
struct GetTopicRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern GetTopicRequestGlobalsTypeInternal GetTopicRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull GetTopicRequest_class_data_;
#else
extern const GetTopicRequestGlobalsTypeInternal GetTopicRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionDataSourceSettings;
struct IngestionDataSourceSettingsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionDataSourceSettingsGlobalsTypeInternal IngestionDataSourceSettings_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionDataSourceSettings_class_data_;
#else
extern const IngestionDataSourceSettingsGlobalsTypeInternal IngestionDataSourceSettings_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionDataSourceSettings_AwsKinesis;
struct IngestionDataSourceSettings_AwsKinesisGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionDataSourceSettings_AwsKinesisGlobalsTypeInternal IngestionDataSourceSettings_AwsKinesis_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionDataSourceSettings_AwsKinesis_class_data_;
#else
extern const IngestionDataSourceSettings_AwsKinesisGlobalsTypeInternal IngestionDataSourceSettings_AwsKinesis_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionDataSourceSettings_CloudStorage;
struct IngestionDataSourceSettings_CloudStorageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionDataSourceSettings_CloudStorageGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionDataSourceSettings_CloudStorage_class_data_;
#else
extern const IngestionDataSourceSettings_CloudStorageGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionDataSourceSettings_CloudStorage_AvroFormat;
struct IngestionDataSourceSettings_CloudStorage_AvroFormatGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionDataSourceSettings_CloudStorage_AvroFormatGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_AvroFormat_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionDataSourceSettings_CloudStorage_AvroFormat_class_data_;
#else
extern const IngestionDataSourceSettings_CloudStorage_AvroFormatGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_AvroFormat_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat;
struct IngestionDataSourceSettings_CloudStorage_PubSubAvroFormatGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionDataSourceSettings_CloudStorage_PubSubAvroFormatGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_class_data_;
#else
extern const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormatGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionDataSourceSettings_CloudStorage_TextFormat;
struct IngestionDataSourceSettings_CloudStorage_TextFormatGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionDataSourceSettings_CloudStorage_TextFormatGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_TextFormat_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionDataSourceSettings_CloudStorage_TextFormat_class_data_;
#else
extern const IngestionDataSourceSettings_CloudStorage_TextFormatGlobalsTypeInternal IngestionDataSourceSettings_CloudStorage_TextFormat_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionFailureEvent;
struct IngestionFailureEventGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionFailureEventGlobalsTypeInternal IngestionFailureEvent_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionFailureEvent_class_data_;
#else
extern const IngestionFailureEventGlobalsTypeInternal IngestionFailureEvent_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionFailureEvent_ApiViolationReason;
struct IngestionFailureEvent_ApiViolationReasonGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionFailureEvent_ApiViolationReasonGlobalsTypeInternal IngestionFailureEvent_ApiViolationReason_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionFailureEvent_ApiViolationReason_class_data_;
#else
extern const IngestionFailureEvent_ApiViolationReasonGlobalsTypeInternal IngestionFailureEvent_ApiViolationReason_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionFailureEvent_AvroFailureReason;
struct IngestionFailureEvent_AvroFailureReasonGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionFailureEvent_AvroFailureReasonGlobalsTypeInternal IngestionFailureEvent_AvroFailureReason_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionFailureEvent_AvroFailureReason_class_data_;
#else
extern const IngestionFailureEvent_AvroFailureReasonGlobalsTypeInternal IngestionFailureEvent_AvroFailureReason_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class IngestionFailureEvent_CloudStorageFailure;
struct IngestionFailureEvent_CloudStorageFailureGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern IngestionFailureEvent_CloudStorageFailureGlobalsTypeInternal IngestionFailureEvent_CloudStorageFailure_globals_;
extern const ::google::protobuf::internal::ClassDataFull IngestionFailureEvent_CloudStorageFailure_class_data_;
#else
extern const IngestionFailureEvent_CloudStorageFailureGlobalsTypeInternal IngestionFailureEvent_CloudStorageFailure_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListSnapshotsRequest;
struct ListSnapshotsRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListSnapshotsRequestGlobalsTypeInternal ListSnapshotsRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListSnapshotsRequest_class_data_;
#else
extern const ListSnapshotsRequestGlobalsTypeInternal ListSnapshotsRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListSnapshotsResponse;
struct ListSnapshotsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListSnapshotsResponseGlobalsTypeInternal ListSnapshotsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListSnapshotsResponse_class_data_;
#else
extern const ListSnapshotsResponseGlobalsTypeInternal ListSnapshotsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListSubscriptionsRequest;
struct ListSubscriptionsRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListSubscriptionsRequestGlobalsTypeInternal ListSubscriptionsRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListSubscriptionsRequest_class_data_;
#else
extern const ListSubscriptionsRequestGlobalsTypeInternal ListSubscriptionsRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListSubscriptionsResponse;
struct ListSubscriptionsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListSubscriptionsResponseGlobalsTypeInternal ListSubscriptionsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListSubscriptionsResponse_class_data_;
#else
extern const ListSubscriptionsResponseGlobalsTypeInternal ListSubscriptionsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListTopicSnapshotsRequest;
struct ListTopicSnapshotsRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListTopicSnapshotsRequestGlobalsTypeInternal ListTopicSnapshotsRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListTopicSnapshotsRequest_class_data_;
#else
extern const ListTopicSnapshotsRequestGlobalsTypeInternal ListTopicSnapshotsRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListTopicSnapshotsResponse;
struct ListTopicSnapshotsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListTopicSnapshotsResponseGlobalsTypeInternal ListTopicSnapshotsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListTopicSnapshotsResponse_class_data_;
#else
extern const ListTopicSnapshotsResponseGlobalsTypeInternal ListTopicSnapshotsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListTopicSubscriptionsRequest;
struct ListTopicSubscriptionsRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListTopicSubscriptionsRequestGlobalsTypeInternal ListTopicSubscriptionsRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListTopicSubscriptionsRequest_class_data_;
#else
extern const ListTopicSubscriptionsRequestGlobalsTypeInternal ListTopicSubscriptionsRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListTopicSubscriptionsResponse;
struct ListTopicSubscriptionsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListTopicSubscriptionsResponseGlobalsTypeInternal ListTopicSubscriptionsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListTopicSubscriptionsResponse_class_data_;
#else
extern const ListTopicSubscriptionsResponseGlobalsTypeInternal ListTopicSubscriptionsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListTopicsRequest;
struct ListTopicsRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListTopicsRequestGlobalsTypeInternal ListTopicsRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListTopicsRequest_class_data_;
#else
extern const ListTopicsRequestGlobalsTypeInternal ListTopicsRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ListTopicsResponse;
struct ListTopicsResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ListTopicsResponseGlobalsTypeInternal ListTopicsResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull ListTopicsResponse_class_data_;
#else
extern const ListTopicsResponseGlobalsTypeInternal ListTopicsResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class MessageStoragePolicy;
struct MessageStoragePolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern MessageStoragePolicyGlobalsTypeInternal MessageStoragePolicy_globals_;
extern const ::google::protobuf::internal::ClassDataFull MessageStoragePolicy_class_data_;
#else
extern const MessageStoragePolicyGlobalsTypeInternal MessageStoragePolicy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ModifyAckDeadlineRequest;
struct ModifyAckDeadlineRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ModifyAckDeadlineRequestGlobalsTypeInternal ModifyAckDeadlineRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ModifyAckDeadlineRequest_class_data_;
#else
extern const ModifyAckDeadlineRequestGlobalsTypeInternal ModifyAckDeadlineRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ModifyPushConfigRequest;
struct ModifyPushConfigRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ModifyPushConfigRequestGlobalsTypeInternal ModifyPushConfigRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull ModifyPushConfigRequest_class_data_;
#else
extern const ModifyPushConfigRequestGlobalsTypeInternal ModifyPushConfigRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PlatformLogsSettings;
struct PlatformLogsSettingsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PlatformLogsSettingsGlobalsTypeInternal PlatformLogsSettings_globals_;
extern const ::google::protobuf::internal::ClassDataFull PlatformLogsSettings_class_data_;
#else
extern const PlatformLogsSettingsGlobalsTypeInternal PlatformLogsSettings_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PublishRequest;
struct PublishRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PublishRequestGlobalsTypeInternal PublishRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull PublishRequest_class_data_;
#else
extern const PublishRequestGlobalsTypeInternal PublishRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PublishResponse;
struct PublishResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PublishResponseGlobalsTypeInternal PublishResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull PublishResponse_class_data_;
#else
extern const PublishResponseGlobalsTypeInternal PublishResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PubsubMessage;
struct PubsubMessageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PubsubMessageGlobalsTypeInternal PubsubMessage_globals_;
extern const ::google::protobuf::internal::ClassDataFull PubsubMessage_class_data_;
#else
extern const PubsubMessageGlobalsTypeInternal PubsubMessage_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PubsubMessage_AttributesEntry_DoNotUse;
struct PubsubMessage_AttributesEntry_DoNotUseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PubsubMessage_AttributesEntry_DoNotUseGlobalsTypeInternal PubsubMessage_AttributesEntry_DoNotUse_globals_;
extern const ::google::protobuf::internal::ClassDataFull PubsubMessage_AttributesEntry_DoNotUse_class_data_;
#else
extern const PubsubMessage_AttributesEntry_DoNotUseGlobalsTypeInternal PubsubMessage_AttributesEntry_DoNotUse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PullRequest;
struct PullRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PullRequestGlobalsTypeInternal PullRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull PullRequest_class_data_;
#else
extern const PullRequestGlobalsTypeInternal PullRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PullResponse;
struct PullResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PullResponseGlobalsTypeInternal PullResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull PullResponse_class_data_;
#else
extern const PullResponseGlobalsTypeInternal PullResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PushConfig;
struct PushConfigGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PushConfigGlobalsTypeInternal PushConfig_globals_;
extern const ::google::protobuf::internal::ClassDataFull PushConfig_class_data_;
#else
extern const PushConfigGlobalsTypeInternal PushConfig_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PushConfig_AttributesEntry_DoNotUse;
struct PushConfig_AttributesEntry_DoNotUseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PushConfig_AttributesEntry_DoNotUseGlobalsTypeInternal PushConfig_AttributesEntry_DoNotUse_globals_;
extern const ::google::protobuf::internal::ClassDataFull PushConfig_AttributesEntry_DoNotUse_class_data_;
#else
extern const PushConfig_AttributesEntry_DoNotUseGlobalsTypeInternal PushConfig_AttributesEntry_DoNotUse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PushConfig_NoWrapper;
struct PushConfig_NoWrapperGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PushConfig_NoWrapperGlobalsTypeInternal PushConfig_NoWrapper_globals_;
extern const ::google::protobuf::internal::ClassDataFull PushConfig_NoWrapper_class_data_;
#else
extern const PushConfig_NoWrapperGlobalsTypeInternal PushConfig_NoWrapper_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PushConfig_OidcToken;
struct PushConfig_OidcTokenGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PushConfig_OidcTokenGlobalsTypeInternal PushConfig_OidcToken_globals_;
extern const ::google::protobuf::internal::ClassDataFull PushConfig_OidcToken_class_data_;
#else
extern const PushConfig_OidcTokenGlobalsTypeInternal PushConfig_OidcToken_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class PushConfig_PubsubWrapper;
struct PushConfig_PubsubWrapperGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern PushConfig_PubsubWrapperGlobalsTypeInternal PushConfig_PubsubWrapper_globals_;
extern const ::google::protobuf::internal::ClassDataFull PushConfig_PubsubWrapper_class_data_;
#else
extern const PushConfig_PubsubWrapperGlobalsTypeInternal PushConfig_PubsubWrapper_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class ReceivedMessage;
struct ReceivedMessageGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern ReceivedMessageGlobalsTypeInternal ReceivedMessage_globals_;
extern const ::google::protobuf::internal::ClassDataFull ReceivedMessage_class_data_;
#else
extern const ReceivedMessageGlobalsTypeInternal ReceivedMessage_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class RetryPolicy;
struct RetryPolicyGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern RetryPolicyGlobalsTypeInternal RetryPolicy_globals_;
extern const ::google::protobuf::internal::ClassDataFull RetryPolicy_class_data_;
#else
extern const RetryPolicyGlobalsTypeInternal RetryPolicy_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SchemaSettings;
struct SchemaSettingsGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SchemaSettingsGlobalsTypeInternal SchemaSettings_globals_;
extern const ::google::protobuf::internal::ClassDataFull SchemaSettings_class_data_;
#else
extern const SchemaSettingsGlobalsTypeInternal SchemaSettings_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SeekRequest;
struct SeekRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SeekRequestGlobalsTypeInternal SeekRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull SeekRequest_class_data_;
#else
extern const SeekRequestGlobalsTypeInternal SeekRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class SeekResponse;
struct SeekResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SeekResponseGlobalsTypeInternal SeekResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull SeekResponse_class_data_;
#else
extern const SeekResponseGlobalsTypeInternal SeekResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Snapshot;
struct SnapshotGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SnapshotGlobalsTypeInternal Snapshot_globals_;
extern const ::google::protobuf::internal::ClassDataFull Snapshot_class_data_;
#else
extern const SnapshotGlobalsTypeInternal Snapshot_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Snapshot_LabelsEntry_DoNotUse;
struct Snapshot_LabelsEntry_DoNotUseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern Snapshot_LabelsEntry_DoNotUseGlobalsTypeInternal Snapshot_LabelsEntry_DoNotUse_globals_;
extern const ::google::protobuf::internal::ClassDataFull Snapshot_LabelsEntry_DoNotUse_class_data_;
#else
extern const Snapshot_LabelsEntry_DoNotUseGlobalsTypeInternal Snapshot_LabelsEntry_DoNotUse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StreamingPullRequest;
struct StreamingPullRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StreamingPullRequestGlobalsTypeInternal StreamingPullRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull StreamingPullRequest_class_data_;
#else
extern const StreamingPullRequestGlobalsTypeInternal StreamingPullRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StreamingPullResponse;
struct StreamingPullResponseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StreamingPullResponseGlobalsTypeInternal StreamingPullResponse_globals_;
extern const ::google::protobuf::internal::ClassDataFull StreamingPullResponse_class_data_;
#else
extern const StreamingPullResponseGlobalsTypeInternal StreamingPullResponse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StreamingPullResponse_AcknowledgeConfirmation;
struct StreamingPullResponse_AcknowledgeConfirmationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StreamingPullResponse_AcknowledgeConfirmationGlobalsTypeInternal StreamingPullResponse_AcknowledgeConfirmation_globals_;
extern const ::google::protobuf::internal::ClassDataFull StreamingPullResponse_AcknowledgeConfirmation_class_data_;
#else
extern const StreamingPullResponse_AcknowledgeConfirmationGlobalsTypeInternal StreamingPullResponse_AcknowledgeConfirmation_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StreamingPullResponse_ModifyAckDeadlineConfirmation;
struct StreamingPullResponse_ModifyAckDeadlineConfirmationGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StreamingPullResponse_ModifyAckDeadlineConfirmationGlobalsTypeInternal StreamingPullResponse_ModifyAckDeadlineConfirmation_globals_;
extern const ::google::protobuf::internal::ClassDataFull StreamingPullResponse_ModifyAckDeadlineConfirmation_class_data_;
#else
extern const StreamingPullResponse_ModifyAckDeadlineConfirmationGlobalsTypeInternal StreamingPullResponse_ModifyAckDeadlineConfirmation_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class StreamingPullResponse_SubscriptionProperties;
struct StreamingPullResponse_SubscriptionPropertiesGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern StreamingPullResponse_SubscriptionPropertiesGlobalsTypeInternal StreamingPullResponse_SubscriptionProperties_globals_;
extern const ::google::protobuf::internal::ClassDataFull StreamingPullResponse_SubscriptionProperties_class_data_;
#else
extern const StreamingPullResponse_SubscriptionPropertiesGlobalsTypeInternal StreamingPullResponse_SubscriptionProperties_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Subscription;
struct SubscriptionGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern SubscriptionGlobalsTypeInternal Subscription_globals_;
extern const ::google::protobuf::internal::ClassDataFull Subscription_class_data_;
#else
extern const SubscriptionGlobalsTypeInternal Subscription_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Subscription_AnalyticsHubSubscriptionInfo;
struct Subscription_AnalyticsHubSubscriptionInfoGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern Subscription_AnalyticsHubSubscriptionInfoGlobalsTypeInternal Subscription_AnalyticsHubSubscriptionInfo_globals_;
extern const ::google::protobuf::internal::ClassDataFull Subscription_AnalyticsHubSubscriptionInfo_class_data_;
#else
extern const Subscription_AnalyticsHubSubscriptionInfoGlobalsTypeInternal Subscription_AnalyticsHubSubscriptionInfo_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Subscription_LabelsEntry_DoNotUse;
struct Subscription_LabelsEntry_DoNotUseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern Subscription_LabelsEntry_DoNotUseGlobalsTypeInternal Subscription_LabelsEntry_DoNotUse_globals_;
extern const ::google::protobuf::internal::ClassDataFull Subscription_LabelsEntry_DoNotUse_class_data_;
#else
extern const Subscription_LabelsEntry_DoNotUseGlobalsTypeInternal Subscription_LabelsEntry_DoNotUse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Topic;
struct TopicGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern TopicGlobalsTypeInternal Topic_globals_;
extern const ::google::protobuf::internal::ClassDataFull Topic_class_data_;
#else
extern const TopicGlobalsTypeInternal Topic_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class Topic_LabelsEntry_DoNotUse;
struct Topic_LabelsEntry_DoNotUseGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern Topic_LabelsEntry_DoNotUseGlobalsTypeInternal Topic_LabelsEntry_DoNotUse_globals_;
extern const ::google::protobuf::internal::ClassDataFull Topic_LabelsEntry_DoNotUse_class_data_;
#else
extern const Topic_LabelsEntry_DoNotUseGlobalsTypeInternal Topic_LabelsEntry_DoNotUse_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdateSnapshotRequest;
struct UpdateSnapshotRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdateSnapshotRequestGlobalsTypeInternal UpdateSnapshotRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdateSnapshotRequest_class_data_;
#else
extern const UpdateSnapshotRequestGlobalsTypeInternal UpdateSnapshotRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdateSubscriptionRequest;
struct UpdateSubscriptionRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdateSubscriptionRequestGlobalsTypeInternal UpdateSubscriptionRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdateSubscriptionRequest_class_data_;
#else
extern const UpdateSubscriptionRequestGlobalsTypeInternal UpdateSubscriptionRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
class UpdateTopicRequest;
struct UpdateTopicRequestGlobalsTypeInternal;
#ifndef PROTOBUF_MESSAGE_GLOBALS
extern UpdateTopicRequestGlobalsTypeInternal UpdateTopicRequest_globals_;
extern const ::google::protobuf::internal::ClassDataFull UpdateTopicRequest_class_data_;
#else
extern const UpdateTopicRequestGlobalsTypeInternal UpdateTopicRequest_globals_;
#endif  // PROTOBUF_MESSAGE_GLOBALS
}  // namespace v1
}  // namespace pubsub
namespace protobuf {
template <>
internal::EnumTraitsT<::google::pubsub::v1::BigQueryConfig_State_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::BigQueryConfig_State>;
template <>
internal::EnumTraitsT<::google::pubsub::v1::CloudStorageConfig_State_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::CloudStorageConfig_State>;
template <>
internal::EnumTraitsT<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State>;
template <>
internal::EnumTraitsT<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State>;
template <>
internal::EnumTraitsT<::google::pubsub::v1::PlatformLogsSettings_Severity_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::PlatformLogsSettings_Severity>;
template <>
internal::EnumTraitsT<::google::pubsub::v1::Subscription_State_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::Subscription_State>;
template <>
internal::EnumTraitsT<::google::pubsub::v1::Topic_State_internal_data_>
    internal::EnumTraitsImpl::value<::google::pubsub::v1::Topic_State>;
}  // namespace protobuf
}  // namespace google

namespace google {
namespace pubsub {
namespace v1 {
enum IngestionDataSourceSettings_AwsKinesis_State : int {
  IngestionDataSourceSettings_AwsKinesis_State_STATE_UNSPECIFIED = 0,
  IngestionDataSourceSettings_AwsKinesis_State_ACTIVE = 1,
  IngestionDataSourceSettings_AwsKinesis_State_KINESIS_PERMISSION_DENIED = 2,
  IngestionDataSourceSettings_AwsKinesis_State_PUBLISH_PERMISSION_DENIED = 3,
  IngestionDataSourceSettings_AwsKinesis_State_STREAM_NOT_FOUND = 4,
  IngestionDataSourceSettings_AwsKinesis_State_CONSUMER_NOT_FOUND = 5,
  IngestionDataSourceSettings_AwsKinesis_State_IngestionDataSourceSettings_AwsKinesis_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  IngestionDataSourceSettings_AwsKinesis_State_IngestionDataSourceSettings_AwsKinesis_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t IngestionDataSourceSettings_AwsKinesis_State_internal_data_[];
inline constexpr IngestionDataSourceSettings_AwsKinesis_State IngestionDataSourceSettings_AwsKinesis_State_State_MIN =
    static_cast<IngestionDataSourceSettings_AwsKinesis_State>(0);
inline constexpr IngestionDataSourceSettings_AwsKinesis_State IngestionDataSourceSettings_AwsKinesis_State_State_MAX =
    static_cast<IngestionDataSourceSettings_AwsKinesis_State>(5);
[[nodiscard]] inline bool IngestionDataSourceSettings_AwsKinesis_State_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int IngestionDataSourceSettings_AwsKinesis_State_State_ARRAYSIZE = 5 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
IngestionDataSourceSettings_AwsKinesis_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(IngestionDataSourceSettings_AwsKinesis_State) {
  return IngestionDataSourceSettings_AwsKinesis_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& IngestionDataSourceSettings_AwsKinesis_State_Name(T value) {
  static_assert(::std::is_same<T, IngestionDataSourceSettings_AwsKinesis_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return IngestionDataSourceSettings_AwsKinesis_State_Name(static_cast<IngestionDataSourceSettings_AwsKinesis_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& IngestionDataSourceSettings_AwsKinesis_State_Name(IngestionDataSourceSettings_AwsKinesis_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<IngestionDataSourceSettings_AwsKinesis_State_descriptor, 0, 5>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool IngestionDataSourceSettings_AwsKinesis_State_Parse(
    ::absl::string_view name, IngestionDataSourceSettings_AwsKinesis_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<IngestionDataSourceSettings_AwsKinesis_State>(IngestionDataSourceSettings_AwsKinesis_State_descriptor(), name,
                                           value);
}
enum IngestionDataSourceSettings_CloudStorage_State : int {
  IngestionDataSourceSettings_CloudStorage_State_STATE_UNSPECIFIED = 0,
  IngestionDataSourceSettings_CloudStorage_State_ACTIVE = 1,
  IngestionDataSourceSettings_CloudStorage_State_CLOUD_STORAGE_PERMISSION_DENIED = 2,
  IngestionDataSourceSettings_CloudStorage_State_PUBLISH_PERMISSION_DENIED = 3,
  IngestionDataSourceSettings_CloudStorage_State_BUCKET_NOT_FOUND = 4,
  IngestionDataSourceSettings_CloudStorage_State_TOO_MANY_OBJECTS = 5,
  IngestionDataSourceSettings_CloudStorage_State_IngestionDataSourceSettings_CloudStorage_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  IngestionDataSourceSettings_CloudStorage_State_IngestionDataSourceSettings_CloudStorage_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t IngestionDataSourceSettings_CloudStorage_State_internal_data_[];
inline constexpr IngestionDataSourceSettings_CloudStorage_State IngestionDataSourceSettings_CloudStorage_State_State_MIN =
    static_cast<IngestionDataSourceSettings_CloudStorage_State>(0);
inline constexpr IngestionDataSourceSettings_CloudStorage_State IngestionDataSourceSettings_CloudStorage_State_State_MAX =
    static_cast<IngestionDataSourceSettings_CloudStorage_State>(5);
[[nodiscard]] inline bool IngestionDataSourceSettings_CloudStorage_State_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int IngestionDataSourceSettings_CloudStorage_State_State_ARRAYSIZE = 5 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
IngestionDataSourceSettings_CloudStorage_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(IngestionDataSourceSettings_CloudStorage_State) {
  return IngestionDataSourceSettings_CloudStorage_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& IngestionDataSourceSettings_CloudStorage_State_Name(T value) {
  static_assert(::std::is_same<T, IngestionDataSourceSettings_CloudStorage_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return IngestionDataSourceSettings_CloudStorage_State_Name(static_cast<IngestionDataSourceSettings_CloudStorage_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& IngestionDataSourceSettings_CloudStorage_State_Name(IngestionDataSourceSettings_CloudStorage_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<IngestionDataSourceSettings_CloudStorage_State_descriptor, 0, 5>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool IngestionDataSourceSettings_CloudStorage_State_Parse(
    ::absl::string_view name, IngestionDataSourceSettings_CloudStorage_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<IngestionDataSourceSettings_CloudStorage_State>(IngestionDataSourceSettings_CloudStorage_State_descriptor(), name,
                                           value);
}
enum PlatformLogsSettings_Severity : int {
  PlatformLogsSettings_Severity_SEVERITY_UNSPECIFIED = 0,
  PlatformLogsSettings_Severity_DISABLED = 1,
  PlatformLogsSettings_Severity_DEBUG = 2,
  PlatformLogsSettings_Severity_INFO = 3,
  PlatformLogsSettings_Severity_WARNING = 4,
  PlatformLogsSettings_Severity_ERROR = 5,
  PlatformLogsSettings_Severity_PlatformLogsSettings_Severity_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  PlatformLogsSettings_Severity_PlatformLogsSettings_Severity_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t PlatformLogsSettings_Severity_internal_data_[];
inline constexpr PlatformLogsSettings_Severity PlatformLogsSettings_Severity_Severity_MIN =
    static_cast<PlatformLogsSettings_Severity>(0);
inline constexpr PlatformLogsSettings_Severity PlatformLogsSettings_Severity_Severity_MAX =
    static_cast<PlatformLogsSettings_Severity>(5);
[[nodiscard]] inline bool PlatformLogsSettings_Severity_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int PlatformLogsSettings_Severity_Severity_ARRAYSIZE = 5 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
PlatformLogsSettings_Severity_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(PlatformLogsSettings_Severity) {
  return PlatformLogsSettings_Severity_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& PlatformLogsSettings_Severity_Name(T value) {
  static_assert(::std::is_same<T, PlatformLogsSettings_Severity>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to Severity_Name().");
  return PlatformLogsSettings_Severity_Name(static_cast<PlatformLogsSettings_Severity>(value));
}
template <>
[[nodiscard]] inline const ::std::string& PlatformLogsSettings_Severity_Name(PlatformLogsSettings_Severity value) {
  return ::google::protobuf::internal::NameOfDenseEnum<PlatformLogsSettings_Severity_descriptor, 0, 5>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool PlatformLogsSettings_Severity_Parse(
    ::absl::string_view name, PlatformLogsSettings_Severity* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<PlatformLogsSettings_Severity>(PlatformLogsSettings_Severity_descriptor(), name,
                                           value);
}
enum Topic_State : int {
  Topic_State_STATE_UNSPECIFIED = 0,
  Topic_State_ACTIVE = 1,
  Topic_State_INGESTION_RESOURCE_ERROR = 2,
  Topic_State_Topic_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Topic_State_Topic_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Topic_State_internal_data_[];
inline constexpr Topic_State Topic_State_State_MIN =
    static_cast<Topic_State>(0);
inline constexpr Topic_State Topic_State_State_MAX =
    static_cast<Topic_State>(2);
[[nodiscard]] inline bool Topic_State_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int Topic_State_State_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Topic_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Topic_State) {
  return Topic_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Topic_State_Name(T value) {
  static_assert(::std::is_same<T, Topic_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return Topic_State_Name(static_cast<Topic_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Topic_State_Name(Topic_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Topic_State_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Topic_State_Parse(
    ::absl::string_view name, Topic_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Topic_State>(Topic_State_descriptor(), name,
                                           value);
}
enum Subscription_State : int {
  Subscription_State_STATE_UNSPECIFIED = 0,
  Subscription_State_ACTIVE = 1,
  Subscription_State_RESOURCE_ERROR = 2,
  Subscription_State_Subscription_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  Subscription_State_Subscription_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t Subscription_State_internal_data_[];
inline constexpr Subscription_State Subscription_State_State_MIN =
    static_cast<Subscription_State>(0);
inline constexpr Subscription_State Subscription_State_State_MAX =
    static_cast<Subscription_State>(2);
[[nodiscard]] inline bool Subscription_State_IsValid(int value) {
  return 0 <= value && value <= 2;
}
inline constexpr int Subscription_State_State_ARRAYSIZE = 2 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
Subscription_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(Subscription_State) {
  return Subscription_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& Subscription_State_Name(T value) {
  static_assert(::std::is_same<T, Subscription_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return Subscription_State_Name(static_cast<Subscription_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& Subscription_State_Name(Subscription_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Subscription_State_descriptor, 0, 2>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool Subscription_State_Parse(
    ::absl::string_view name, Subscription_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<Subscription_State>(Subscription_State_descriptor(), name,
                                           value);
}
enum BigQueryConfig_State : int {
  BigQueryConfig_State_STATE_UNSPECIFIED = 0,
  BigQueryConfig_State_ACTIVE = 1,
  BigQueryConfig_State_PERMISSION_DENIED = 2,
  BigQueryConfig_State_NOT_FOUND = 3,
  BigQueryConfig_State_SCHEMA_MISMATCH = 4,
  BigQueryConfig_State_IN_TRANSIT_LOCATION_RESTRICTION = 5,
  BigQueryConfig_State_BigQueryConfig_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  BigQueryConfig_State_BigQueryConfig_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t BigQueryConfig_State_internal_data_[];
inline constexpr BigQueryConfig_State BigQueryConfig_State_State_MIN =
    static_cast<BigQueryConfig_State>(0);
inline constexpr BigQueryConfig_State BigQueryConfig_State_State_MAX =
    static_cast<BigQueryConfig_State>(5);
[[nodiscard]] inline bool BigQueryConfig_State_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int BigQueryConfig_State_State_ARRAYSIZE = 5 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
BigQueryConfig_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(BigQueryConfig_State) {
  return BigQueryConfig_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& BigQueryConfig_State_Name(T value) {
  static_assert(::std::is_same<T, BigQueryConfig_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return BigQueryConfig_State_Name(static_cast<BigQueryConfig_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& BigQueryConfig_State_Name(BigQueryConfig_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<BigQueryConfig_State_descriptor, 0, 5>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool BigQueryConfig_State_Parse(
    ::absl::string_view name, BigQueryConfig_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<BigQueryConfig_State>(BigQueryConfig_State_descriptor(), name,
                                           value);
}
enum CloudStorageConfig_State : int {
  CloudStorageConfig_State_STATE_UNSPECIFIED = 0,
  CloudStorageConfig_State_ACTIVE = 1,
  CloudStorageConfig_State_PERMISSION_DENIED = 2,
  CloudStorageConfig_State_NOT_FOUND = 3,
  CloudStorageConfig_State_IN_TRANSIT_LOCATION_RESTRICTION = 4,
  CloudStorageConfig_State_SCHEMA_MISMATCH = 5,
  CloudStorageConfig_State_CloudStorageConfig_State_INT_MIN_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::min(),
  CloudStorageConfig_State_CloudStorageConfig_State_INT_MAX_SENTINEL_DO_NOT_USE_ =
      ::std::numeric_limits<::int32_t>::max(),
};

extern const uint32_t CloudStorageConfig_State_internal_data_[];
inline constexpr CloudStorageConfig_State CloudStorageConfig_State_State_MIN =
    static_cast<CloudStorageConfig_State>(0);
inline constexpr CloudStorageConfig_State CloudStorageConfig_State_State_MAX =
    static_cast<CloudStorageConfig_State>(5);
[[nodiscard]] inline bool CloudStorageConfig_State_IsValid(int value) {
  return 0 <= value && value <= 5;
}
inline constexpr int CloudStorageConfig_State_State_ARRAYSIZE = 5 + 1;
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
CloudStorageConfig_State_descriptor();
[[nodiscard]] inline auto ProtobufInternalGetEnumDescriptor(CloudStorageConfig_State) {
  return CloudStorageConfig_State_descriptor();
}
template <typename T>
[[nodiscard]] const ::std::string& CloudStorageConfig_State_Name(T value) {
  static_assert(::std::is_same<T, CloudStorageConfig_State>::value ||
                    ::std::is_integral<T>::value,
                "Incorrect type passed to State_Name().");
  return CloudStorageConfig_State_Name(static_cast<CloudStorageConfig_State>(value));
}
template <>
[[nodiscard]] inline const ::std::string& CloudStorageConfig_State_Name(CloudStorageConfig_State value) {
  return ::google::protobuf::internal::NameOfDenseEnum<CloudStorageConfig_State_descriptor, 0, 5>(
      static_cast<int>(value));
}
[[nodiscard]] inline bool CloudStorageConfig_State_Parse(
    ::absl::string_view name, CloudStorageConfig_State* PROTOBUF_NONNULL value) {
  return ::google::protobuf::internal::ParseNamedEnum<CloudStorageConfig_State>(CloudStorageConfig_State_descriptor(), name,
                                           value);
}
using ::google::protobuf::internal::generated_enum::AbslParseFlag;
using ::google::protobuf::internal::generated_enum::AbslUnparseFlag;

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


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

class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Topic_LabelsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType =
      ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  Topic_LabelsEntry_DoNotUse();
  template <typename = void>
  explicit constexpr Topic_LabelsEntry_DoNotUse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);
  explicit Topic_LabelsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr const void* PROTOBUF_NONNULL internal_message_globals() {
    return &Topic_LabelsEntry_DoNotUse_globals_;
  }


  static constexpr auto InternalGenerateClassData_(
      const ::google::protobuf::MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

 private:
  friend class ::google::protobuf::MessageLite;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
  friend ::google::protobuf::internal::PrivateAccess;
  friend Topic_LabelsEntry_DoNotUseGlobalsTypeInternal;

  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 51,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();
};
// -------------------------------------------------------------------

class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Subscription_LabelsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType =
      ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  Subscription_LabelsEntry_DoNotUse();
  template <typename = void>
  explicit constexpr Subscription_LabelsEntry_DoNotUse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);
  explicit Subscription_LabelsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr const void* PROTOBUF_NONNULL internal_message_globals() {
    return &Subscription_LabelsEntry_DoNotUse_globals_;
  }


  static constexpr auto InternalGenerateClassData_(
      const ::google::protobuf::MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

 private:
  friend class ::google::protobuf::MessageLite;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
  friend ::google::protobuf::internal::PrivateAccess;
  friend Subscription_LabelsEntry_DoNotUseGlobalsTypeInternal;

  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 58,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Subscription_AnalyticsHubSubscriptionInfo final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo) */ {
 public:
  inline Subscription_AnalyticsHubSubscriptionInfo() : Subscription_AnalyticsHubSubscriptionInfo(nullptr) {}
  ~Subscription_AnalyticsHubSubscriptionInfo() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Subscription_AnalyticsHubSubscriptionInfo));
  }
#endif

  template <typename = void>
  explicit constexpr Subscription_AnalyticsHubSubscriptionInfo(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Subscription_AnalyticsHubSubscriptionInfo(const Subscription_AnalyticsHubSubscriptionInfo& from) : Subscription_AnalyticsHubSubscriptionInfo(nullptr, from) {}
  inline Subscription_AnalyticsHubSubscriptionInfo(Subscription_AnalyticsHubSubscriptionInfo&& from) noexcept : Subscription_AnalyticsHubSubscriptionInfo(nullptr, ::std::move(from)) {}
  inline Subscription_AnalyticsHubSubscriptionInfo& operator=(const Subscription_AnalyticsHubSubscriptionInfo& from) {
    CopyFrom(from);
    return *this;
  }
  inline Subscription_AnalyticsHubSubscriptionInfo& operator=(Subscription_AnalyticsHubSubscriptionInfo&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Subscription_AnalyticsHubSubscriptionInfo& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Subscription_AnalyticsHubSubscriptionInfo>(&Subscription_AnalyticsHubSubscriptionInfo_globals_);
  }
  static constexpr int kIndexInFileMessages = 30;
  friend void swap(Subscription_AnalyticsHubSubscriptionInfo& a, Subscription_AnalyticsHubSubscriptionInfo& b) { a.Swap(&b); }
  inline void Swap(Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Subscription_AnalyticsHubSubscriptionInfo>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Subscription_AnalyticsHubSubscriptionInfo& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Subscription_AnalyticsHubSubscriptionInfo& from) { Subscription_AnalyticsHubSubscriptionInfo::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo"; }

  explicit Subscription_AnalyticsHubSubscriptionInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Subscription_AnalyticsHubSubscriptionInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Subscription_AnalyticsHubSubscriptionInfo& from);
  Subscription_AnalyticsHubSubscriptionInfo(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Subscription_AnalyticsHubSubscriptionInfo&& from) noexcept
      : Subscription_AnalyticsHubSubscriptionInfo(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kListingFieldNumber = 1,
    kSubscriptionFieldNumber = 2,
  };
  // string listing = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_listing() ;
  [[nodiscard]] const ::std::string& listing() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_listing(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_listing();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_listing();
  void set_allocated_listing(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_listing() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_listing(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_listing();

  public:
  // string subscription = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 86,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Subscription_AnalyticsHubSubscriptionInfo& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr listing_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StreamingPullResponse_SubscriptionProperties final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties) */ {
 public:
  inline StreamingPullResponse_SubscriptionProperties() : StreamingPullResponse_SubscriptionProperties(nullptr) {}
  ~StreamingPullResponse_SubscriptionProperties() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamingPullResponse_SubscriptionProperties));
  }
#endif

  template <typename = void>
  explicit constexpr StreamingPullResponse_SubscriptionProperties(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StreamingPullResponse_SubscriptionProperties(const StreamingPullResponse_SubscriptionProperties& from) : StreamingPullResponse_SubscriptionProperties(nullptr, from) {}
  inline StreamingPullResponse_SubscriptionProperties(StreamingPullResponse_SubscriptionProperties&& from) noexcept : StreamingPullResponse_SubscriptionProperties(nullptr, ::std::move(from)) {}
  inline StreamingPullResponse_SubscriptionProperties& operator=(const StreamingPullResponse_SubscriptionProperties& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamingPullResponse_SubscriptionProperties& operator=(StreamingPullResponse_SubscriptionProperties&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StreamingPullResponse_SubscriptionProperties& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StreamingPullResponse_SubscriptionProperties>(&StreamingPullResponse_SubscriptionProperties_globals_);
  }
  static constexpr int kIndexInFileMessages = 59;
  friend void swap(StreamingPullResponse_SubscriptionProperties& a, StreamingPullResponse_SubscriptionProperties& b) { a.Swap(&b); }
  inline void Swap(StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StreamingPullResponse_SubscriptionProperties>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StreamingPullResponse_SubscriptionProperties& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StreamingPullResponse_SubscriptionProperties& from) { StreamingPullResponse_SubscriptionProperties::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.StreamingPullResponse.SubscriptionProperties"; }

  explicit StreamingPullResponse_SubscriptionProperties(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamingPullResponse_SubscriptionProperties(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamingPullResponse_SubscriptionProperties& from);
  StreamingPullResponse_SubscriptionProperties(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamingPullResponse_SubscriptionProperties&& from) noexcept
      : StreamingPullResponse_SubscriptionProperties(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kExactlyOnceDeliveryEnabledFieldNumber = 1,
    kMessageOrderingEnabledFieldNumber = 2,
  };
  // bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_exactly_once_delivery_enabled() ;
  [[nodiscard]] bool exactly_once_delivery_enabled() const;
  void set_exactly_once_delivery_enabled(bool value);

  private:
  bool _internal_exactly_once_delivery_enabled() const;
  void _internal_set_exactly_once_delivery_enabled(bool value);

  public:
  // bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_message_ordering_enabled() ;
  [[nodiscard]] bool message_ordering_enabled() const;
  void set_message_ordering_enabled(bool value);

  private:
  bool _internal_message_ordering_enabled() const;
  void _internal_set_message_ordering_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamingPullResponse_SubscriptionProperties& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool exactly_once_delivery_enabled_;
    bool message_ordering_enabled_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StreamingPullResponse_ModifyAckDeadlineConfirmation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation) */ {
 public:
  inline StreamingPullResponse_ModifyAckDeadlineConfirmation() : StreamingPullResponse_ModifyAckDeadlineConfirmation(nullptr) {}
  ~StreamingPullResponse_ModifyAckDeadlineConfirmation() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamingPullResponse_ModifyAckDeadlineConfirmation));
  }
#endif

  template <typename = void>
  explicit constexpr StreamingPullResponse_ModifyAckDeadlineConfirmation(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StreamingPullResponse_ModifyAckDeadlineConfirmation(const StreamingPullResponse_ModifyAckDeadlineConfirmation& from) : StreamingPullResponse_ModifyAckDeadlineConfirmation(nullptr, from) {}
  inline StreamingPullResponse_ModifyAckDeadlineConfirmation(StreamingPullResponse_ModifyAckDeadlineConfirmation&& from) noexcept : StreamingPullResponse_ModifyAckDeadlineConfirmation(nullptr, ::std::move(from)) {}
  inline StreamingPullResponse_ModifyAckDeadlineConfirmation& operator=(const StreamingPullResponse_ModifyAckDeadlineConfirmation& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamingPullResponse_ModifyAckDeadlineConfirmation& operator=(StreamingPullResponse_ModifyAckDeadlineConfirmation&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StreamingPullResponse_ModifyAckDeadlineConfirmation& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StreamingPullResponse_ModifyAckDeadlineConfirmation>(&StreamingPullResponse_ModifyAckDeadlineConfirmation_globals_);
  }
  static constexpr int kIndexInFileMessages = 58;
  friend void swap(StreamingPullResponse_ModifyAckDeadlineConfirmation& a, StreamingPullResponse_ModifyAckDeadlineConfirmation& b) { a.Swap(&b); }
  inline void Swap(StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StreamingPullResponse_ModifyAckDeadlineConfirmation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StreamingPullResponse_ModifyAckDeadlineConfirmation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StreamingPullResponse_ModifyAckDeadlineConfirmation& from) { StreamingPullResponse_ModifyAckDeadlineConfirmation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation"; }

  explicit StreamingPullResponse_ModifyAckDeadlineConfirmation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamingPullResponse_ModifyAckDeadlineConfirmation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamingPullResponse_ModifyAckDeadlineConfirmation& from);
  StreamingPullResponse_ModifyAckDeadlineConfirmation(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamingPullResponse_ModifyAckDeadlineConfirmation&& from) noexcept
      : StreamingPullResponse_ModifyAckDeadlineConfirmation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAckIdsFieldNumber = 1,
    kInvalidAckIdsFieldNumber = 2,
    kTemporaryFailedAckIdsFieldNumber = 3,
  };
  // repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int ack_ids_size()
      const;
  private:
  int _internal_ack_ids_size() const;

  public:
  void clear_ack_ids() ;
  [[nodiscard]] const ::std::string& ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_ack_ids();

  public:
  // repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int invalid_ack_ids_size()
      const;
  private:
  int _internal_invalid_ack_ids_size() const;

  public:
  void clear_invalid_ack_ids() ;
  [[nodiscard]] const ::std::string& invalid_ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_invalid_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_invalid_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_invalid_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_invalid_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      invalid_ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_invalid_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_invalid_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_invalid_ack_ids();

  public:
  // repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int temporary_failed_ack_ids_size()
      const;
  private:
  int _internal_temporary_failed_ack_ids_size() const;

  public:
  void clear_temporary_failed_ack_ids() ;
  [[nodiscard]] const ::std::string& temporary_failed_ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_temporary_failed_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_temporary_failed_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_temporary_failed_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_temporary_failed_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      temporary_failed_ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_temporary_failed_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_temporary_failed_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_temporary_failed_ack_ids();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 123,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamingPullResponse_ModifyAckDeadlineConfirmation& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> ack_ids_;
    ::google::protobuf::RepeatedPtrField<::std::string> invalid_ack_ids_;
    ::google::protobuf::RepeatedPtrField<::std::string> temporary_failed_ack_ids_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StreamingPullResponse_AcknowledgeConfirmation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation) */ {
 public:
  inline StreamingPullResponse_AcknowledgeConfirmation() : StreamingPullResponse_AcknowledgeConfirmation(nullptr) {}
  ~StreamingPullResponse_AcknowledgeConfirmation() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamingPullResponse_AcknowledgeConfirmation));
  }
#endif

  template <typename = void>
  explicit constexpr StreamingPullResponse_AcknowledgeConfirmation(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StreamingPullResponse_AcknowledgeConfirmation(const StreamingPullResponse_AcknowledgeConfirmation& from) : StreamingPullResponse_AcknowledgeConfirmation(nullptr, from) {}
  inline StreamingPullResponse_AcknowledgeConfirmation(StreamingPullResponse_AcknowledgeConfirmation&& from) noexcept : StreamingPullResponse_AcknowledgeConfirmation(nullptr, ::std::move(from)) {}
  inline StreamingPullResponse_AcknowledgeConfirmation& operator=(const StreamingPullResponse_AcknowledgeConfirmation& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamingPullResponse_AcknowledgeConfirmation& operator=(StreamingPullResponse_AcknowledgeConfirmation&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StreamingPullResponse_AcknowledgeConfirmation& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StreamingPullResponse_AcknowledgeConfirmation>(&StreamingPullResponse_AcknowledgeConfirmation_globals_);
  }
  static constexpr int kIndexInFileMessages = 57;
  friend void swap(StreamingPullResponse_AcknowledgeConfirmation& a, StreamingPullResponse_AcknowledgeConfirmation& b) { a.Swap(&b); }
  inline void Swap(StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StreamingPullResponse_AcknowledgeConfirmation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StreamingPullResponse_AcknowledgeConfirmation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StreamingPullResponse_AcknowledgeConfirmation& from) { StreamingPullResponse_AcknowledgeConfirmation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation"; }

  explicit StreamingPullResponse_AcknowledgeConfirmation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamingPullResponse_AcknowledgeConfirmation(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamingPullResponse_AcknowledgeConfirmation& from);
  StreamingPullResponse_AcknowledgeConfirmation(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamingPullResponse_AcknowledgeConfirmation&& from) noexcept
      : StreamingPullResponse_AcknowledgeConfirmation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAckIdsFieldNumber = 1,
    kInvalidAckIdsFieldNumber = 2,
    kUnorderedAckIdsFieldNumber = 3,
    kTemporaryFailedAckIdsFieldNumber = 4,
  };
  // repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int ack_ids_size()
      const;
  private:
  int _internal_ack_ids_size() const;

  public:
  void clear_ack_ids() ;
  [[nodiscard]] const ::std::string& ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_ack_ids();

  public:
  // repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int invalid_ack_ids_size()
      const;
  private:
  int _internal_invalid_ack_ids_size() const;

  public:
  void clear_invalid_ack_ids() ;
  [[nodiscard]] const ::std::string& invalid_ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_invalid_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_invalid_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_invalid_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_invalid_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      invalid_ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_invalid_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_invalid_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_invalid_ack_ids();

  public:
  // repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int unordered_ack_ids_size()
      const;
  private:
  int _internal_unordered_ack_ids_size() const;

  public:
  void clear_unordered_ack_ids() ;
  [[nodiscard]] const ::std::string& unordered_ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_unordered_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_unordered_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_unordered_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_unordered_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      unordered_ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_unordered_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_unordered_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_unordered_ack_ids();

  public:
  // repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int temporary_failed_ack_ids_size()
      const;
  private:
  int _internal_temporary_failed_ack_ids_size() const;

  public:
  void clear_temporary_failed_ack_ids() ;
  [[nodiscard]] const ::std::string& temporary_failed_ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_temporary_failed_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_temporary_failed_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_temporary_failed_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_temporary_failed_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      temporary_failed_ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_temporary_failed_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_temporary_failed_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_temporary_failed_ack_ids();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 134,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamingPullResponse_AcknowledgeConfirmation& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> ack_ids_;
    ::google::protobuf::RepeatedPtrField<::std::string> invalid_ack_ids_;
    ::google::protobuf::RepeatedPtrField<::std::string> unordered_ack_ids_;
    ::google::protobuf::RepeatedPtrField<::std::string> temporary_failed_ack_ids_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StreamingPullRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.StreamingPullRequest) */ {
 public:
  inline StreamingPullRequest() : StreamingPullRequest(nullptr) {}
  ~StreamingPullRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamingPullRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamingPullRequest));
  }
#endif

  template <typename = void>
  explicit constexpr StreamingPullRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StreamingPullRequest(const StreamingPullRequest& from) : StreamingPullRequest(nullptr, from) {}
  inline StreamingPullRequest(StreamingPullRequest&& from) noexcept : StreamingPullRequest(nullptr, ::std::move(from)) {}
  inline StreamingPullRequest& operator=(const StreamingPullRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamingPullRequest& operator=(StreamingPullRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StreamingPullRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StreamingPullRequest>(&StreamingPullRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 56;
  friend void swap(StreamingPullRequest& a, StreamingPullRequest& b) { a.Swap(&b); }
  inline void Swap(StreamingPullRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamingPullRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StreamingPullRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StreamingPullRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StreamingPullRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StreamingPullRequest& from) { StreamingPullRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamingPullRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.StreamingPullRequest"; }

  explicit StreamingPullRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamingPullRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamingPullRequest& from);
  StreamingPullRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamingPullRequest&& from) noexcept
      : StreamingPullRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAckIdsFieldNumber = 2,
    kModifyDeadlineSecondsFieldNumber = 3,
    kModifyDeadlineAckIdsFieldNumber = 4,
    kSubscriptionFieldNumber = 1,
    kClientIdFieldNumber = 6,
    kMaxOutstandingMessagesFieldNumber = 7,
    kMaxOutstandingBytesFieldNumber = 8,
    kStreamAckDeadlineSecondsFieldNumber = 5,
  };
  // repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int ack_ids_size()
      const;
  private:
  int _internal_ack_ids_size() const;

  public:
  void clear_ack_ids() ;
  [[nodiscard]] const ::std::string& ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_ack_ids();

  public:
  // repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int modify_deadline_seconds_size()
      const;
  private:
  int _internal_modify_deadline_seconds_size() const;

  public:
  void clear_modify_deadline_seconds() ;
  [[nodiscard]] ::int32_t modify_deadline_seconds(int index) const;
  void set_modify_deadline_seconds(int index, ::int32_t value);
  void add_modify_deadline_seconds(::int32_t value);
  [[nodiscard]] const ::google::protobuf::RepeatedField<::int32_t>& modify_deadline_seconds()
      const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL mutable_modify_deadline_seconds();

  private:
  const ::google::protobuf::RepeatedField<::int32_t>& _internal_modify_deadline_seconds() const;
  ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL _internal_mutable_modify_deadline_seconds();

  public:
  // repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int modify_deadline_ack_ids_size()
      const;
  private:
  int _internal_modify_deadline_ack_ids_size() const;

  public:
  void clear_modify_deadline_ack_ids() ;
  [[nodiscard]] const ::std::string& modify_deadline_ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_modify_deadline_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_modify_deadline_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_modify_deadline_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_modify_deadline_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      modify_deadline_ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_modify_deadline_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_modify_deadline_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_modify_deadline_ack_ids();

  public:
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // string client_id = 6 [(.google.api.field_behavior) = OPTIONAL];
  void clear_client_id() ;
  [[nodiscard]] const ::std::string& client_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_client_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_client_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_client_id();
  void set_allocated_client_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_client_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_client_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_client_id();

  public:
  // int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL];
  void clear_max_outstanding_messages() ;
  [[nodiscard]] ::int64_t max_outstanding_messages() const;
  void set_max_outstanding_messages(::int64_t value);

  private:
  ::int64_t _internal_max_outstanding_messages() const;
  void _internal_set_max_outstanding_messages(::int64_t value);

  public:
  // int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL];
  void clear_max_outstanding_bytes() ;
  [[nodiscard]] ::int64_t max_outstanding_bytes() const;
  void set_max_outstanding_bytes(::int64_t value);

  private:
  ::int64_t _internal_max_outstanding_bytes() const;
  void _internal_set_max_outstanding_bytes(::int64_t value);

  public:
  // int32 stream_ack_deadline_seconds = 5 [(.google.api.field_behavior) = REQUIRED];
  void clear_stream_ack_deadline_seconds() ;
  [[nodiscard]] ::int32_t stream_ack_deadline_seconds() const;
  void set_stream_ack_deadline_seconds(::int32_t value);

  private:
  ::int32_t _internal_stream_ack_deadline_seconds() const;
  void _internal_set_stream_ack_deadline_seconds(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.StreamingPullRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 8,
                          0, 105,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamingPullRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> ack_ids_;
    ::google::protobuf::RepeatedField<::int32_t> modify_deadline_seconds_;
    ::google::protobuf::internal::CachedSize _modify_deadline_seconds_cached_byte_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> modify_deadline_ack_ids_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    ::google::protobuf::internal::ArenaStringPtr client_id_;
    ::int64_t max_outstanding_messages_;
    ::int64_t max_outstanding_bytes_;
    ::int32_t stream_ack_deadline_seconds_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Snapshot_LabelsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType =
      ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  Snapshot_LabelsEntry_DoNotUse();
  template <typename = void>
  explicit constexpr Snapshot_LabelsEntry_DoNotUse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);
  explicit Snapshot_LabelsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr const void* PROTOBUF_NONNULL internal_message_globals() {
    return &Snapshot_LabelsEntry_DoNotUse_globals_;
  }


  static constexpr auto InternalGenerateClassData_(
      const ::google::protobuf::MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

 private:
  friend class ::google::protobuf::MessageLite;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
  friend ::google::protobuf::internal::PrivateAccess;
  friend Snapshot_LabelsEntry_DoNotUseGlobalsTypeInternal;

  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 54,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED SeekResponse final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.SeekResponse) */ {
 public:
  inline SeekResponse() : SeekResponse(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(SeekResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(SeekResponse));
  }
#endif

  template <typename = void>
  explicit constexpr SeekResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline SeekResponse(const SeekResponse& from) : SeekResponse(nullptr, from) {}
  inline SeekResponse(SeekResponse&& from) noexcept : SeekResponse(nullptr, ::std::move(from)) {}
  inline SeekResponse& operator=(const SeekResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline SeekResponse& operator=(SeekResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const SeekResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SeekResponse>(&SeekResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 71;
  friend void swap(SeekResponse& a, SeekResponse& b) { a.Swap(&b); }
  inline void Swap(SeekResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SeekResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] SeekResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<SeekResponse>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const SeekResponse& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const SeekResponse& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.SeekResponse"; }

  explicit SeekResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SeekResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SeekResponse& from);
  SeekResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SeekResponse&& from) noexcept
      : SeekResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.SeekResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED SchemaSettings final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.SchemaSettings) */ {
 public:
  inline SchemaSettings() : SchemaSettings(nullptr) {}
  ~SchemaSettings() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(SchemaSettings* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(SchemaSettings));
  }
#endif

  template <typename = void>
  explicit constexpr SchemaSettings(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline SchemaSettings(const SchemaSettings& from) : SchemaSettings(nullptr, from) {}
  inline SchemaSettings(SchemaSettings&& from) noexcept : SchemaSettings(nullptr, ::std::move(from)) {}
  inline SchemaSettings& operator=(const SchemaSettings& from) {
    CopyFrom(from);
    return *this;
  }
  inline SchemaSettings& operator=(SchemaSettings&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const SchemaSettings& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SchemaSettings>(&SchemaSettings_globals_);
  }
  static constexpr int kIndexInFileMessages = 1;
  friend void swap(SchemaSettings& a, SchemaSettings& b) { a.Swap(&b); }
  inline void Swap(SchemaSettings* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SchemaSettings* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] SchemaSettings* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<SchemaSettings>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SchemaSettings& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SchemaSettings& from) { SchemaSettings::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(SchemaSettings* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.SchemaSettings"; }

  explicit SchemaSettings(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SchemaSettings(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SchemaSettings& from);
  SchemaSettings(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SchemaSettings&& from) noexcept
      : SchemaSettings(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSchemaFieldNumber = 1,
    kFirstRevisionIdFieldNumber = 3,
    kLastRevisionIdFieldNumber = 4,
    kEncodingFieldNumber = 2,
  };
  // string schema = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_schema() ;
  [[nodiscard]] const ::std::string& schema() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_schema(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_schema();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_schema();
  void set_allocated_schema(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_schema() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_schema(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_schema();

  public:
  // string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_first_revision_id() ;
  [[nodiscard]] const ::std::string& first_revision_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_first_revision_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_first_revision_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_first_revision_id();
  void set_allocated_first_revision_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_first_revision_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_first_revision_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_first_revision_id();

  public:
  // string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL];
  void clear_last_revision_id() ;
  [[nodiscard]] const ::std::string& last_revision_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_last_revision_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_last_revision_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_last_revision_id();
  void set_allocated_last_revision_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_last_revision_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_last_revision_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_last_revision_id();

  public:
  // .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_encoding() ;
  [[nodiscard]] ::google::pubsub::v1::Encoding encoding() const;
  void set_encoding(::google::pubsub::v1::Encoding value);

  private:
  ::google::pubsub::v1::Encoding _internal_encoding() const;
  void _internal_set_encoding(::google::pubsub::v1::Encoding value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.SchemaSettings)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          0, 79,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const SchemaSettings& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr schema_;
    ::google::protobuf::internal::ArenaStringPtr first_revision_id_;
    ::google::protobuf::internal::ArenaStringPtr last_revision_id_;
    int encoding_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PushConfig_PubsubWrapper final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PushConfig.PubsubWrapper) */ {
 public:
  inline PushConfig_PubsubWrapper() : PushConfig_PubsubWrapper(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PushConfig_PubsubWrapper* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PushConfig_PubsubWrapper));
  }
#endif

  template <typename = void>
  explicit constexpr PushConfig_PubsubWrapper(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PushConfig_PubsubWrapper(const PushConfig_PubsubWrapper& from) : PushConfig_PubsubWrapper(nullptr, from) {}
  inline PushConfig_PubsubWrapper(PushConfig_PubsubWrapper&& from) noexcept : PushConfig_PubsubWrapper(nullptr, ::std::move(from)) {}
  inline PushConfig_PubsubWrapper& operator=(const PushConfig_PubsubWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushConfig_PubsubWrapper& operator=(PushConfig_PubsubWrapper&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PushConfig_PubsubWrapper& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PushConfig_PubsubWrapper>(&PushConfig_PubsubWrapper_globals_);
  }
  static constexpr int kIndexInFileMessages = 37;
  friend void swap(PushConfig_PubsubWrapper& a, PushConfig_PubsubWrapper& b) { a.Swap(&b); }
  inline void Swap(PushConfig_PubsubWrapper* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushConfig_PubsubWrapper* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PushConfig_PubsubWrapper* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<PushConfig_PubsubWrapper>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const PushConfig_PubsubWrapper& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const PushConfig_PubsubWrapper& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PushConfig.PubsubWrapper"; }

  explicit PushConfig_PubsubWrapper(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PushConfig_PubsubWrapper(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PushConfig_PubsubWrapper& from);
  PushConfig_PubsubWrapper(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PushConfig_PubsubWrapper&& from) noexcept
      : PushConfig_PubsubWrapper(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig.PubsubWrapper)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PushConfig_OidcToken final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PushConfig.OidcToken) */ {
 public:
  inline PushConfig_OidcToken() : PushConfig_OidcToken(nullptr) {}
  ~PushConfig_OidcToken() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PushConfig_OidcToken* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PushConfig_OidcToken));
  }
#endif

  template <typename = void>
  explicit constexpr PushConfig_OidcToken(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PushConfig_OidcToken(const PushConfig_OidcToken& from) : PushConfig_OidcToken(nullptr, from) {}
  inline PushConfig_OidcToken(PushConfig_OidcToken&& from) noexcept : PushConfig_OidcToken(nullptr, ::std::move(from)) {}
  inline PushConfig_OidcToken& operator=(const PushConfig_OidcToken& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushConfig_OidcToken& operator=(PushConfig_OidcToken&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PushConfig_OidcToken& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PushConfig_OidcToken>(&PushConfig_OidcToken_globals_);
  }
  static constexpr int kIndexInFileMessages = 36;
  friend void swap(PushConfig_OidcToken& a, PushConfig_OidcToken& b) { a.Swap(&b); }
  inline void Swap(PushConfig_OidcToken* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushConfig_OidcToken* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PushConfig_OidcToken* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PushConfig_OidcToken>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PushConfig_OidcToken& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PushConfig_OidcToken& from) { PushConfig_OidcToken::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PushConfig_OidcToken* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PushConfig.OidcToken"; }

  explicit PushConfig_OidcToken(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PushConfig_OidcToken(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PushConfig_OidcToken& from);
  PushConfig_OidcToken(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PushConfig_OidcToken&& from) noexcept
      : PushConfig_OidcToken(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kServiceAccountEmailFieldNumber = 1,
    kAudienceFieldNumber = 2,
  };
  // string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_service_account_email() ;
  [[nodiscard]] const ::std::string& service_account_email() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_service_account_email(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_service_account_email();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_service_account_email();
  void set_allocated_service_account_email(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_service_account_email() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_service_account_email(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_service_account_email();

  public:
  // string audience = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_audience() ;
  [[nodiscard]] const ::std::string& audience() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_audience(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_audience();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_audience();
  void set_allocated_audience(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_audience() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_audience(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_audience();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig.OidcToken)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 75,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PushConfig_OidcToken& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr service_account_email_;
    ::google::protobuf::internal::ArenaStringPtr audience_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PushConfig_NoWrapper final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PushConfig.NoWrapper) */ {
 public:
  inline PushConfig_NoWrapper() : PushConfig_NoWrapper(nullptr) {}
  ~PushConfig_NoWrapper() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PushConfig_NoWrapper* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PushConfig_NoWrapper));
  }
#endif

  template <typename = void>
  explicit constexpr PushConfig_NoWrapper(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PushConfig_NoWrapper(const PushConfig_NoWrapper& from) : PushConfig_NoWrapper(nullptr, from) {}
  inline PushConfig_NoWrapper(PushConfig_NoWrapper&& from) noexcept : PushConfig_NoWrapper(nullptr, ::std::move(from)) {}
  inline PushConfig_NoWrapper& operator=(const PushConfig_NoWrapper& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushConfig_NoWrapper& operator=(PushConfig_NoWrapper&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PushConfig_NoWrapper& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PushConfig_NoWrapper>(&PushConfig_NoWrapper_globals_);
  }
  static constexpr int kIndexInFileMessages = 38;
  friend void swap(PushConfig_NoWrapper& a, PushConfig_NoWrapper& b) { a.Swap(&b); }
  inline void Swap(PushConfig_NoWrapper* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushConfig_NoWrapper* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PushConfig_NoWrapper* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PushConfig_NoWrapper>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PushConfig_NoWrapper& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PushConfig_NoWrapper& from) { PushConfig_NoWrapper::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PushConfig_NoWrapper* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PushConfig.NoWrapper"; }

  explicit PushConfig_NoWrapper(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PushConfig_NoWrapper(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PushConfig_NoWrapper& from);
  PushConfig_NoWrapper(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PushConfig_NoWrapper&& from) noexcept
      : PushConfig_NoWrapper(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kWriteMetadataFieldNumber = 1,
  };
  // bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_write_metadata() ;
  [[nodiscard]] bool write_metadata() const;
  void set_write_metadata(bool value);

  private:
  bool _internal_write_metadata() const;
  void _internal_set_write_metadata(bool value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig.NoWrapper)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PushConfig_NoWrapper& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool write_metadata_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PushConfig_AttributesEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType =
      ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  PushConfig_AttributesEntry_DoNotUse();
  template <typename = void>
  explicit constexpr PushConfig_AttributesEntry_DoNotUse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);
  explicit PushConfig_AttributesEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr const void* PROTOBUF_NONNULL internal_message_globals() {
    return &PushConfig_AttributesEntry_DoNotUse_globals_;
  }


  static constexpr auto InternalGenerateClassData_(
      const ::google::protobuf::MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

 private:
  friend class ::google::protobuf::MessageLite;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
  friend ::google::protobuf::internal::PrivateAccess;
  friend PushConfig_AttributesEntry_DoNotUseGlobalsTypeInternal;

  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 60,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PullRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PullRequest) */ {
 public:
  inline PullRequest() : PullRequest(nullptr) {}
  ~PullRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PullRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PullRequest));
  }
#endif

  template <typename = void>
  explicit constexpr PullRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PullRequest(const PullRequest& from) : PullRequest(nullptr, from) {}
  inline PullRequest(PullRequest&& from) noexcept : PullRequest(nullptr, ::std::move(from)) {}
  inline PullRequest& operator=(const PullRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PullRequest& operator=(PullRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PullRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PullRequest>(&PullRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 52;
  friend void swap(PullRequest& a, PullRequest& b) { a.Swap(&b); }
  inline void Swap(PullRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PullRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PullRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PullRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PullRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PullRequest& from) { PullRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PullRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PullRequest"; }

  explicit PullRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PullRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PullRequest& from);
  PullRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PullRequest&& from) noexcept
      : PullRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
    kReturnImmediatelyFieldNumber = 2,
    kMaxMessagesFieldNumber = 3,
  };
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // bool return_immediately = 2 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];
  [[deprecated]]  void clear_return_immediately() ;
  [[nodiscard]] [[deprecated]] bool return_immediately() const;
  [[deprecated]] void set_return_immediately(bool value);

  private:
  bool _internal_return_immediately() const;
  void _internal_set_return_immediately(bool value);

  public:
  // int32 max_messages = 3 [(.google.api.field_behavior) = REQUIRED];
  void clear_max_messages() ;
  [[nodiscard]] ::int32_t max_messages() const;
  void set_max_messages(::int32_t value);

  private:
  ::int32_t _internal_max_messages() const;
  void _internal_set_max_messages(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PullRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 49,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PullRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    bool return_immediately_;
    ::int32_t max_messages_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PubsubMessage_AttributesEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType =
      ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  PubsubMessage_AttributesEntry_DoNotUse();
  template <typename = void>
  explicit constexpr PubsubMessage_AttributesEntry_DoNotUse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);
  explicit PubsubMessage_AttributesEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr const void* PROTOBUF_NONNULL internal_message_globals() {
    return &PubsubMessage_AttributesEntry_DoNotUse_globals_;
  }


  static constexpr auto InternalGenerateClassData_(
      const ::google::protobuf::MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

 private:
  friend class ::google::protobuf::MessageLite;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
  friend ::google::protobuf::internal::PrivateAccess;
  friend PubsubMessage_AttributesEntry_DoNotUseGlobalsTypeInternal;

  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 63,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PublishResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PublishResponse) */ {
 public:
  inline PublishResponse() : PublishResponse(nullptr) {}
  ~PublishResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PublishResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PublishResponse));
  }
#endif

  template <typename = void>
  explicit constexpr PublishResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PublishResponse(const PublishResponse& from) : PublishResponse(nullptr, from) {}
  inline PublishResponse(PublishResponse&& from) noexcept : PublishResponse(nullptr, ::std::move(from)) {}
  inline PublishResponse& operator=(const PublishResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PublishResponse& operator=(PublishResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PublishResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PublishResponse>(&PublishResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 20;
  friend void swap(PublishResponse& a, PublishResponse& b) { a.Swap(&b); }
  inline void Swap(PublishResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PublishResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PublishResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PublishResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PublishResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PublishResponse& from) { PublishResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PublishResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PublishResponse"; }

  explicit PublishResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PublishResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PublishResponse& from);
  PublishResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PublishResponse&& from) noexcept
      : PublishResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMessageIdsFieldNumber = 1,
  };
  // repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int message_ids_size()
      const;
  private:
  int _internal_message_ids_size() const;

  public:
  void clear_message_ids() ;
  [[nodiscard]] const ::std::string& message_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_message_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_message_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_message_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_message_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      message_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_message_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_message_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_message_ids();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PublishResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 52,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PublishResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> message_ids_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PlatformLogsSettings final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PlatformLogsSettings) */ {
 public:
  inline PlatformLogsSettings() : PlatformLogsSettings(nullptr) {}
  ~PlatformLogsSettings() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PlatformLogsSettings* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PlatformLogsSettings));
  }
#endif

  template <typename = void>
  explicit constexpr PlatformLogsSettings(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PlatformLogsSettings(const PlatformLogsSettings& from) : PlatformLogsSettings(nullptr, from) {}
  inline PlatformLogsSettings(PlatformLogsSettings&& from) noexcept : PlatformLogsSettings(nullptr, ::std::move(from)) {}
  inline PlatformLogsSettings& operator=(const PlatformLogsSettings& from) {
    CopyFrom(from);
    return *this;
  }
  inline PlatformLogsSettings& operator=(PlatformLogsSettings&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PlatformLogsSettings& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PlatformLogsSettings>(&PlatformLogsSettings_globals_);
  }
  static constexpr int kIndexInFileMessages = 8;
  friend void swap(PlatformLogsSettings& a, PlatformLogsSettings& b) { a.Swap(&b); }
  inline void Swap(PlatformLogsSettings* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PlatformLogsSettings* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PlatformLogsSettings* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PlatformLogsSettings>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PlatformLogsSettings& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PlatformLogsSettings& from) { PlatformLogsSettings::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PlatformLogsSettings* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PlatformLogsSettings"; }

  explicit PlatformLogsSettings(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PlatformLogsSettings(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PlatformLogsSettings& from);
  PlatformLogsSettings(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PlatformLogsSettings&& from) noexcept
      : PlatformLogsSettings(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using Severity = PlatformLogsSettings_Severity;
  static constexpr Severity SEVERITY_UNSPECIFIED = PlatformLogsSettings_Severity_SEVERITY_UNSPECIFIED;
  static constexpr Severity DISABLED = PlatformLogsSettings_Severity_DISABLED;
  static constexpr Severity DEBUG = PlatformLogsSettings_Severity_DEBUG;
  static constexpr Severity INFO = PlatformLogsSettings_Severity_INFO;
  static constexpr Severity WARNING = PlatformLogsSettings_Severity_WARNING;
  static constexpr Severity ERROR = PlatformLogsSettings_Severity_ERROR;
  [[nodiscard]] static inline bool Severity_IsValid(int value) {
    return PlatformLogsSettings_Severity_IsValid(value);
  }
  static constexpr Severity Severity_MIN = PlatformLogsSettings_Severity_Severity_MIN;
  static constexpr Severity Severity_MAX = PlatformLogsSettings_Severity_Severity_MAX;
  static constexpr int Severity_ARRAYSIZE = PlatformLogsSettings_Severity_Severity_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Severity_descriptor() {
    return PlatformLogsSettings_Severity_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& Severity_Name(T value) {
    return PlatformLogsSettings_Severity_Name(value);
  }
  [[nodiscard]] static inline bool Severity_Parse(
      ::absl::string_view name, Severity* PROTOBUF_NONNULL value) {
    return PlatformLogsSettings_Severity_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kSeverityFieldNumber = 1,
  };
  // .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_severity() ;
  [[nodiscard]] ::google::pubsub::v1::PlatformLogsSettings_Severity severity() const;
  void set_severity(::google::pubsub::v1::PlatformLogsSettings_Severity value);

  private:
  ::google::pubsub::v1::PlatformLogsSettings_Severity _internal_severity() const;
  void _internal_set_severity(::google::pubsub::v1::PlatformLogsSettings_Severity value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PlatformLogsSettings)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PlatformLogsSettings& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    int severity_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ModifyAckDeadlineRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ModifyAckDeadlineRequest) */ {
 public:
  inline ModifyAckDeadlineRequest() : ModifyAckDeadlineRequest(nullptr) {}
  ~ModifyAckDeadlineRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ModifyAckDeadlineRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ModifyAckDeadlineRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ModifyAckDeadlineRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ModifyAckDeadlineRequest(const ModifyAckDeadlineRequest& from) : ModifyAckDeadlineRequest(nullptr, from) {}
  inline ModifyAckDeadlineRequest(ModifyAckDeadlineRequest&& from) noexcept : ModifyAckDeadlineRequest(nullptr, ::std::move(from)) {}
  inline ModifyAckDeadlineRequest& operator=(const ModifyAckDeadlineRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ModifyAckDeadlineRequest& operator=(ModifyAckDeadlineRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ModifyAckDeadlineRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ModifyAckDeadlineRequest>(&ModifyAckDeadlineRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 54;
  friend void swap(ModifyAckDeadlineRequest& a, ModifyAckDeadlineRequest& b) { a.Swap(&b); }
  inline void Swap(ModifyAckDeadlineRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ModifyAckDeadlineRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ModifyAckDeadlineRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ModifyAckDeadlineRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ModifyAckDeadlineRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ModifyAckDeadlineRequest& from) { ModifyAckDeadlineRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ModifyAckDeadlineRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ModifyAckDeadlineRequest"; }

  explicit ModifyAckDeadlineRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ModifyAckDeadlineRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ModifyAckDeadlineRequest& from);
  ModifyAckDeadlineRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ModifyAckDeadlineRequest&& from) noexcept
      : ModifyAckDeadlineRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAckIdsFieldNumber = 4,
    kSubscriptionFieldNumber = 1,
    kAckDeadlineSecondsFieldNumber = 3,
  };
  // repeated string ack_ids = 4 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] int ack_ids_size()
      const;
  private:
  int _internal_ack_ids_size() const;

  public:
  void clear_ack_ids() ;
  [[nodiscard]] const ::std::string& ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_ack_ids();

  public:
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED];
  void clear_ack_deadline_seconds() ;
  [[nodiscard]] ::int32_t ack_deadline_seconds() const;
  void set_ack_deadline_seconds(::int32_t value);

  private:
  ::int32_t _internal_ack_deadline_seconds() const;
  void _internal_set_ack_deadline_seconds(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ModifyAckDeadlineRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 69,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ModifyAckDeadlineRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> ack_ids_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    ::int32_t ack_deadline_seconds_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED MessageStoragePolicy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.MessageStoragePolicy) */ {
 public:
  inline MessageStoragePolicy() : MessageStoragePolicy(nullptr) {}
  ~MessageStoragePolicy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(MessageStoragePolicy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(MessageStoragePolicy));
  }
#endif

  template <typename = void>
  explicit constexpr MessageStoragePolicy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline MessageStoragePolicy(const MessageStoragePolicy& from) : MessageStoragePolicy(nullptr, from) {}
  inline MessageStoragePolicy(MessageStoragePolicy&& from) noexcept : MessageStoragePolicy(nullptr, ::std::move(from)) {}
  inline MessageStoragePolicy& operator=(const MessageStoragePolicy& from) {
    CopyFrom(from);
    return *this;
  }
  inline MessageStoragePolicy& operator=(MessageStoragePolicy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const MessageStoragePolicy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<MessageStoragePolicy>(&MessageStoragePolicy_globals_);
  }
  static constexpr int kIndexInFileMessages = 0;
  friend void swap(MessageStoragePolicy& a, MessageStoragePolicy& b) { a.Swap(&b); }
  inline void Swap(MessageStoragePolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(MessageStoragePolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] MessageStoragePolicy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<MessageStoragePolicy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const MessageStoragePolicy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const MessageStoragePolicy& from) { MessageStoragePolicy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(MessageStoragePolicy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.MessageStoragePolicy"; }

  explicit MessageStoragePolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  MessageStoragePolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MessageStoragePolicy& from);
  MessageStoragePolicy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, MessageStoragePolicy&& from) noexcept
      : MessageStoragePolicy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAllowedPersistenceRegionsFieldNumber = 1,
    kEnforceInTransitFieldNumber = 2,
  };
  // repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int allowed_persistence_regions_size()
      const;
  private:
  int _internal_allowed_persistence_regions_size() const;

  public:
  void clear_allowed_persistence_regions() ;
  [[nodiscard]] const ::std::string& allowed_persistence_regions(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_allowed_persistence_regions(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_allowed_persistence_regions(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_allowed_persistence_regions();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_allowed_persistence_regions(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      allowed_persistence_regions() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_allowed_persistence_regions();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_allowed_persistence_regions() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_allowed_persistence_regions();

  public:
  // bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_enforce_in_transit() ;
  [[nodiscard]] bool enforce_in_transit() const;
  void set_enforce_in_transit(bool value);

  private:
  bool _internal_enforce_in_transit() const;
  void _internal_set_enforce_in_transit(bool value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.MessageStoragePolicy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 73,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const MessageStoragePolicy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> allowed_persistence_regions_;
    bool enforce_in_transit_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListTopicsRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListTopicsRequest) */ {
 public:
  inline ListTopicsRequest() : ListTopicsRequest(nullptr) {}
  ~ListTopicsRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListTopicsRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListTopicsRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListTopicsRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListTopicsRequest(const ListTopicsRequest& from) : ListTopicsRequest(nullptr, from) {}
  inline ListTopicsRequest(ListTopicsRequest&& from) noexcept : ListTopicsRequest(nullptr, ::std::move(from)) {}
  inline ListTopicsRequest& operator=(const ListTopicsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListTopicsRequest& operator=(ListTopicsRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListTopicsRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListTopicsRequest>(&ListTopicsRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 21;
  friend void swap(ListTopicsRequest& a, ListTopicsRequest& b) { a.Swap(&b); }
  inline void Swap(ListTopicsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListTopicsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListTopicsRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListTopicsRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListTopicsRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListTopicsRequest& from) { ListTopicsRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListTopicsRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListTopicsRequest"; }

  explicit ListTopicsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListTopicsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListTopicsRequest& from);
  ListTopicsRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListTopicsRequest&& from) noexcept
      : ListTopicsRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kProjectFieldNumber = 1,
    kPageTokenFieldNumber = 3,
    kPageSizeFieldNumber = 2,
  };
  // string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_project() ;
  [[nodiscard]] const ::std::string& project() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_project(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_project();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_project();
  void set_allocated_project(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_project() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_project(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_project();

  public:
  // string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_token() ;
  [[nodiscard]] const ::std::string& page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_page_token();
  void set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_page_token();

  public:
  // int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_size() ;
  [[nodiscard]] ::int32_t page_size() const;
  void set_page_size(::int32_t value);

  private:
  ::int32_t _internal_page_size() const;
  void _internal_set_page_size(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListTopicsRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 60,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListTopicsRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr project_;
    ::google::protobuf::internal::ArenaStringPtr page_token_;
    ::int32_t page_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListTopicSubscriptionsResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListTopicSubscriptionsResponse) */ {
 public:
  inline ListTopicSubscriptionsResponse() : ListTopicSubscriptionsResponse(nullptr) {}
  ~ListTopicSubscriptionsResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListTopicSubscriptionsResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListTopicSubscriptionsResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListTopicSubscriptionsResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListTopicSubscriptionsResponse(const ListTopicSubscriptionsResponse& from) : ListTopicSubscriptionsResponse(nullptr, from) {}
  inline ListTopicSubscriptionsResponse(ListTopicSubscriptionsResponse&& from) noexcept : ListTopicSubscriptionsResponse(nullptr, ::std::move(from)) {}
  inline ListTopicSubscriptionsResponse& operator=(const ListTopicSubscriptionsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListTopicSubscriptionsResponse& operator=(ListTopicSubscriptionsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListTopicSubscriptionsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListTopicSubscriptionsResponse>(&ListTopicSubscriptionsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 24;
  friend void swap(ListTopicSubscriptionsResponse& a, ListTopicSubscriptionsResponse& b) { a.Swap(&b); }
  inline void Swap(ListTopicSubscriptionsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListTopicSubscriptionsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListTopicSubscriptionsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListTopicSubscriptionsResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListTopicSubscriptionsResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListTopicSubscriptionsResponse& from) { ListTopicSubscriptionsResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListTopicSubscriptionsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListTopicSubscriptionsResponse"; }

  explicit ListTopicSubscriptionsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListTopicSubscriptionsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListTopicSubscriptionsResponse& from);
  ListTopicSubscriptionsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListTopicSubscriptionsResponse&& from) noexcept
      : ListTopicSubscriptionsResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
  [[nodiscard]] int subscriptions_size()
      const;
  private:
  int _internal_subscriptions_size() const;

  public:
  void clear_subscriptions() ;
  [[nodiscard]] const ::std::string& subscriptions(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_subscriptions(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscriptions(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_subscriptions();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_subscriptions(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      subscriptions() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_subscriptions();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_subscriptions() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_subscriptions();

  public:
  // string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_next_page_token() ;
  [[nodiscard]] const ::std::string& next_page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_next_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_next_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_next_page_token();
  void set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_next_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_next_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_next_page_token();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListTopicSubscriptionsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 84,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListTopicSubscriptionsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> subscriptions_;
    ::google::protobuf::internal::ArenaStringPtr next_page_token_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListTopicSubscriptionsRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListTopicSubscriptionsRequest) */ {
 public:
  inline ListTopicSubscriptionsRequest() : ListTopicSubscriptionsRequest(nullptr) {}
  ~ListTopicSubscriptionsRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListTopicSubscriptionsRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListTopicSubscriptionsRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListTopicSubscriptionsRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListTopicSubscriptionsRequest(const ListTopicSubscriptionsRequest& from) : ListTopicSubscriptionsRequest(nullptr, from) {}
  inline ListTopicSubscriptionsRequest(ListTopicSubscriptionsRequest&& from) noexcept : ListTopicSubscriptionsRequest(nullptr, ::std::move(from)) {}
  inline ListTopicSubscriptionsRequest& operator=(const ListTopicSubscriptionsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListTopicSubscriptionsRequest& operator=(ListTopicSubscriptionsRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListTopicSubscriptionsRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListTopicSubscriptionsRequest>(&ListTopicSubscriptionsRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 23;
  friend void swap(ListTopicSubscriptionsRequest& a, ListTopicSubscriptionsRequest& b) { a.Swap(&b); }
  inline void Swap(ListTopicSubscriptionsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListTopicSubscriptionsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListTopicSubscriptionsRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListTopicSubscriptionsRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListTopicSubscriptionsRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListTopicSubscriptionsRequest& from) { ListTopicSubscriptionsRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListTopicSubscriptionsRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListTopicSubscriptionsRequest"; }

  explicit ListTopicSubscriptionsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListTopicSubscriptionsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListTopicSubscriptionsRequest& from);
  ListTopicSubscriptionsRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListTopicSubscriptionsRequest&& from) noexcept
      : ListTopicSubscriptionsRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTopicFieldNumber = 1,
    kPageTokenFieldNumber = 3,
    kPageSizeFieldNumber = 2,
  };
  // string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_token() ;
  [[nodiscard]] const ::std::string& page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_page_token();
  void set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_page_token();

  public:
  // int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_size() ;
  [[nodiscard]] ::int32_t page_size() const;
  void set_page_size(::int32_t value);

  private:
  ::int32_t _internal_page_size() const;
  void _internal_set_page_size(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListTopicSubscriptionsRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 70,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListTopicSubscriptionsRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    ::google::protobuf::internal::ArenaStringPtr page_token_;
    ::int32_t page_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListTopicSnapshotsResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListTopicSnapshotsResponse) */ {
 public:
  inline ListTopicSnapshotsResponse() : ListTopicSnapshotsResponse(nullptr) {}
  ~ListTopicSnapshotsResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListTopicSnapshotsResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListTopicSnapshotsResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListTopicSnapshotsResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListTopicSnapshotsResponse(const ListTopicSnapshotsResponse& from) : ListTopicSnapshotsResponse(nullptr, from) {}
  inline ListTopicSnapshotsResponse(ListTopicSnapshotsResponse&& from) noexcept : ListTopicSnapshotsResponse(nullptr, ::std::move(from)) {}
  inline ListTopicSnapshotsResponse& operator=(const ListTopicSnapshotsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListTopicSnapshotsResponse& operator=(ListTopicSnapshotsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListTopicSnapshotsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListTopicSnapshotsResponse>(&ListTopicSnapshotsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 26;
  friend void swap(ListTopicSnapshotsResponse& a, ListTopicSnapshotsResponse& b) { a.Swap(&b); }
  inline void Swap(ListTopicSnapshotsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListTopicSnapshotsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListTopicSnapshotsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListTopicSnapshotsResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListTopicSnapshotsResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListTopicSnapshotsResponse& from) { ListTopicSnapshotsResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListTopicSnapshotsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListTopicSnapshotsResponse"; }

  explicit ListTopicSnapshotsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListTopicSnapshotsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListTopicSnapshotsResponse& from);
  ListTopicSnapshotsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListTopicSnapshotsResponse&& from) noexcept
      : ListTopicSnapshotsResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSnapshotsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int snapshots_size()
      const;
  private:
  int _internal_snapshots_size() const;

  public:
  void clear_snapshots() ;
  [[nodiscard]] const ::std::string& snapshots(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_snapshots(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_snapshots(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_snapshots();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_snapshots(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      snapshots() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_snapshots();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_snapshots() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_snapshots();

  public:
  // string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_next_page_token() ;
  [[nodiscard]] const ::std::string& next_page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_next_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_next_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_next_page_token();
  void set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_next_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_next_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_next_page_token();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListTopicSnapshotsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 76,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListTopicSnapshotsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> snapshots_;
    ::google::protobuf::internal::ArenaStringPtr next_page_token_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListTopicSnapshotsRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListTopicSnapshotsRequest) */ {
 public:
  inline ListTopicSnapshotsRequest() : ListTopicSnapshotsRequest(nullptr) {}
  ~ListTopicSnapshotsRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListTopicSnapshotsRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListTopicSnapshotsRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListTopicSnapshotsRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListTopicSnapshotsRequest(const ListTopicSnapshotsRequest& from) : ListTopicSnapshotsRequest(nullptr, from) {}
  inline ListTopicSnapshotsRequest(ListTopicSnapshotsRequest&& from) noexcept : ListTopicSnapshotsRequest(nullptr, ::std::move(from)) {}
  inline ListTopicSnapshotsRequest& operator=(const ListTopicSnapshotsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListTopicSnapshotsRequest& operator=(ListTopicSnapshotsRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListTopicSnapshotsRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListTopicSnapshotsRequest>(&ListTopicSnapshotsRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 25;
  friend void swap(ListTopicSnapshotsRequest& a, ListTopicSnapshotsRequest& b) { a.Swap(&b); }
  inline void Swap(ListTopicSnapshotsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListTopicSnapshotsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListTopicSnapshotsRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListTopicSnapshotsRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListTopicSnapshotsRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListTopicSnapshotsRequest& from) { ListTopicSnapshotsRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListTopicSnapshotsRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListTopicSnapshotsRequest"; }

  explicit ListTopicSnapshotsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListTopicSnapshotsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListTopicSnapshotsRequest& from);
  ListTopicSnapshotsRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListTopicSnapshotsRequest&& from) noexcept
      : ListTopicSnapshotsRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTopicFieldNumber = 1,
    kPageTokenFieldNumber = 3,
    kPageSizeFieldNumber = 2,
  };
  // string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_token() ;
  [[nodiscard]] const ::std::string& page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_page_token();
  void set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_page_token();

  public:
  // int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_size() ;
  [[nodiscard]] ::int32_t page_size() const;
  void set_page_size(::int32_t value);

  private:
  ::int32_t _internal_page_size() const;
  void _internal_set_page_size(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListTopicSnapshotsRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 66,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListTopicSnapshotsRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    ::google::protobuf::internal::ArenaStringPtr page_token_;
    ::int32_t page_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListSubscriptionsRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListSubscriptionsRequest) */ {
 public:
  inline ListSubscriptionsRequest() : ListSubscriptionsRequest(nullptr) {}
  ~ListSubscriptionsRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListSubscriptionsRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListSubscriptionsRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListSubscriptionsRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListSubscriptionsRequest(const ListSubscriptionsRequest& from) : ListSubscriptionsRequest(nullptr, from) {}
  inline ListSubscriptionsRequest(ListSubscriptionsRequest&& from) noexcept : ListSubscriptionsRequest(nullptr, ::std::move(from)) {}
  inline ListSubscriptionsRequest& operator=(const ListSubscriptionsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListSubscriptionsRequest& operator=(ListSubscriptionsRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListSubscriptionsRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListSubscriptionsRequest>(&ListSubscriptionsRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 48;
  friend void swap(ListSubscriptionsRequest& a, ListSubscriptionsRequest& b) { a.Swap(&b); }
  inline void Swap(ListSubscriptionsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListSubscriptionsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListSubscriptionsRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListSubscriptionsRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListSubscriptionsRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListSubscriptionsRequest& from) { ListSubscriptionsRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListSubscriptionsRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListSubscriptionsRequest"; }

  explicit ListSubscriptionsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListSubscriptionsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListSubscriptionsRequest& from);
  ListSubscriptionsRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListSubscriptionsRequest&& from) noexcept
      : ListSubscriptionsRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kProjectFieldNumber = 1,
    kPageTokenFieldNumber = 3,
    kPageSizeFieldNumber = 2,
  };
  // string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_project() ;
  [[nodiscard]] const ::std::string& project() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_project(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_project();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_project();
  void set_allocated_project(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_project() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_project(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_project();

  public:
  // string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_token() ;
  [[nodiscard]] const ::std::string& page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_page_token();
  void set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_page_token();

  public:
  // int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_size() ;
  [[nodiscard]] ::int32_t page_size() const;
  void set_page_size(::int32_t value);

  private:
  ::int32_t _internal_page_size() const;
  void _internal_set_page_size(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListSubscriptionsRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 67,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListSubscriptionsRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr project_;
    ::google::protobuf::internal::ArenaStringPtr page_token_;
    ::int32_t page_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListSnapshotsRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListSnapshotsRequest) */ {
 public:
  inline ListSnapshotsRequest() : ListSnapshotsRequest(nullptr) {}
  ~ListSnapshotsRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListSnapshotsRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListSnapshotsRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ListSnapshotsRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListSnapshotsRequest(const ListSnapshotsRequest& from) : ListSnapshotsRequest(nullptr, from) {}
  inline ListSnapshotsRequest(ListSnapshotsRequest&& from) noexcept : ListSnapshotsRequest(nullptr, ::std::move(from)) {}
  inline ListSnapshotsRequest& operator=(const ListSnapshotsRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListSnapshotsRequest& operator=(ListSnapshotsRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListSnapshotsRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListSnapshotsRequest>(&ListSnapshotsRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 67;
  friend void swap(ListSnapshotsRequest& a, ListSnapshotsRequest& b) { a.Swap(&b); }
  inline void Swap(ListSnapshotsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListSnapshotsRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListSnapshotsRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListSnapshotsRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListSnapshotsRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListSnapshotsRequest& from) { ListSnapshotsRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListSnapshotsRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListSnapshotsRequest"; }

  explicit ListSnapshotsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListSnapshotsRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListSnapshotsRequest& from);
  ListSnapshotsRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListSnapshotsRequest&& from) noexcept
      : ListSnapshotsRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kProjectFieldNumber = 1,
    kPageTokenFieldNumber = 3,
    kPageSizeFieldNumber = 2,
  };
  // string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_project() ;
  [[nodiscard]] const ::std::string& project() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_project(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_project();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_project();
  void set_allocated_project(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_project() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_project(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_project();

  public:
  // string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_token() ;
  [[nodiscard]] const ::std::string& page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_page_token();
  void set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_page_token();

  public:
  // int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_page_size() ;
  [[nodiscard]] ::int32_t page_size() const;
  void set_page_size(::int32_t value);

  private:
  ::int32_t _internal_page_size() const;
  void _internal_set_page_size(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListSnapshotsRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          0, 63,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListSnapshotsRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr project_;
    ::google::protobuf::internal::ArenaStringPtr page_token_;
    ::int32_t page_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionFailureEvent_AvroFailureReason final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionFailureEvent.AvroFailureReason) */ {
 public:
  inline IngestionFailureEvent_AvroFailureReason() : IngestionFailureEvent_AvroFailureReason(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionFailureEvent_AvroFailureReason));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionFailureEvent_AvroFailureReason(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionFailureEvent_AvroFailureReason(const IngestionFailureEvent_AvroFailureReason& from) : IngestionFailureEvent_AvroFailureReason(nullptr, from) {}
  inline IngestionFailureEvent_AvroFailureReason(IngestionFailureEvent_AvroFailureReason&& from) noexcept : IngestionFailureEvent_AvroFailureReason(nullptr, ::std::move(from)) {}
  inline IngestionFailureEvent_AvroFailureReason& operator=(const IngestionFailureEvent_AvroFailureReason& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionFailureEvent_AvroFailureReason& operator=(IngestionFailureEvent_AvroFailureReason&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionFailureEvent_AvroFailureReason& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionFailureEvent_AvroFailureReason>(&IngestionFailureEvent_AvroFailureReason_globals_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(IngestionFailureEvent_AvroFailureReason& a, IngestionFailureEvent_AvroFailureReason& b) { a.Swap(&b); }
  inline void Swap(IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<IngestionFailureEvent_AvroFailureReason>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const IngestionFailureEvent_AvroFailureReason& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const IngestionFailureEvent_AvroFailureReason& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionFailureEvent.AvroFailureReason"; }

  explicit IngestionFailureEvent_AvroFailureReason(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionFailureEvent_AvroFailureReason(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionFailureEvent_AvroFailureReason& from);
  IngestionFailureEvent_AvroFailureReason(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionFailureEvent_AvroFailureReason&& from) noexcept
      : IngestionFailureEvent_AvroFailureReason(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.AvroFailureReason)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionFailureEvent_ApiViolationReason final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionFailureEvent.ApiViolationReason) */ {
 public:
  inline IngestionFailureEvent_ApiViolationReason() : IngestionFailureEvent_ApiViolationReason(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionFailureEvent_ApiViolationReason));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionFailureEvent_ApiViolationReason(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionFailureEvent_ApiViolationReason(const IngestionFailureEvent_ApiViolationReason& from) : IngestionFailureEvent_ApiViolationReason(nullptr, from) {}
  inline IngestionFailureEvent_ApiViolationReason(IngestionFailureEvent_ApiViolationReason&& from) noexcept : IngestionFailureEvent_ApiViolationReason(nullptr, ::std::move(from)) {}
  inline IngestionFailureEvent_ApiViolationReason& operator=(const IngestionFailureEvent_ApiViolationReason& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionFailureEvent_ApiViolationReason& operator=(IngestionFailureEvent_ApiViolationReason&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionFailureEvent_ApiViolationReason& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionFailureEvent_ApiViolationReason>(&IngestionFailureEvent_ApiViolationReason_globals_);
  }
  static constexpr int kIndexInFileMessages = 9;
  friend void swap(IngestionFailureEvent_ApiViolationReason& a, IngestionFailureEvent_ApiViolationReason& b) { a.Swap(&b); }
  inline void Swap(IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<IngestionFailureEvent_ApiViolationReason>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const IngestionFailureEvent_ApiViolationReason& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const IngestionFailureEvent_ApiViolationReason& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionFailureEvent.ApiViolationReason"; }

  explicit IngestionFailureEvent_ApiViolationReason(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionFailureEvent_ApiViolationReason(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionFailureEvent_ApiViolationReason& from);
  IngestionFailureEvent_ApiViolationReason(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionFailureEvent_ApiViolationReason&& from) noexcept
      : IngestionFailureEvent_ApiViolationReason(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.ApiViolationReason)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionDataSourceSettings_CloudStorage_TextFormat final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat) */ {
 public:
  inline IngestionDataSourceSettings_CloudStorage_TextFormat() : IngestionDataSourceSettings_CloudStorage_TextFormat(nullptr) {}
  ~IngestionDataSourceSettings_CloudStorage_TextFormat() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionDataSourceSettings_CloudStorage_TextFormat));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionDataSourceSettings_CloudStorage_TextFormat(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionDataSourceSettings_CloudStorage_TextFormat(const IngestionDataSourceSettings_CloudStorage_TextFormat& from) : IngestionDataSourceSettings_CloudStorage_TextFormat(nullptr, from) {}
  inline IngestionDataSourceSettings_CloudStorage_TextFormat(IngestionDataSourceSettings_CloudStorage_TextFormat&& from) noexcept : IngestionDataSourceSettings_CloudStorage_TextFormat(nullptr, ::std::move(from)) {}
  inline IngestionDataSourceSettings_CloudStorage_TextFormat& operator=(const IngestionDataSourceSettings_CloudStorage_TextFormat& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionDataSourceSettings_CloudStorage_TextFormat& operator=(IngestionDataSourceSettings_CloudStorage_TextFormat&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionDataSourceSettings_CloudStorage_TextFormat& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionDataSourceSettings_CloudStorage_TextFormat>(&IngestionDataSourceSettings_CloudStorage_TextFormat_globals_);
  }
  static constexpr int kIndexInFileMessages = 3;
  friend void swap(IngestionDataSourceSettings_CloudStorage_TextFormat& a, IngestionDataSourceSettings_CloudStorage_TextFormat& b) { a.Swap(&b); }
  inline void Swap(IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IngestionDataSourceSettings_CloudStorage_TextFormat>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IngestionDataSourceSettings_CloudStorage_TextFormat& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IngestionDataSourceSettings_CloudStorage_TextFormat& from) { IngestionDataSourceSettings_CloudStorage_TextFormat::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat"; }

  explicit IngestionDataSourceSettings_CloudStorage_TextFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionDataSourceSettings_CloudStorage_TextFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionDataSourceSettings_CloudStorage_TextFormat& from);
  IngestionDataSourceSettings_CloudStorage_TextFormat(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionDataSourceSettings_CloudStorage_TextFormat&& from) noexcept
      : IngestionDataSourceSettings_CloudStorage_TextFormat(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDelimiterFieldNumber = 1,
  };
  // optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_delimiter()
      const;
  void clear_delimiter() ;
  [[nodiscard]] const ::std::string& delimiter() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_delimiter(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_delimiter();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_delimiter();
  void set_allocated_delimiter(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_delimiter() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_delimiter(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_delimiter();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 86,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IngestionDataSourceSettings_CloudStorage_TextFormat& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr delimiter_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat) */ {
 public:
  inline IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat() : IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& from) : IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(nullptr, from) {}
  inline IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat&& from) noexcept : IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(nullptr, ::std::move(from)) {}
  inline IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& operator=(const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& operator=(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat>(&IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_globals_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& a, IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& b) { a.Swap(&b); }
  inline void Swap(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat"; }

  explicit IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& from);
  IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat&& from) noexcept
      : IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionDataSourceSettings_CloudStorage_AvroFormat final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat) */ {
 public:
  inline IngestionDataSourceSettings_CloudStorage_AvroFormat() : IngestionDataSourceSettings_CloudStorage_AvroFormat(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionDataSourceSettings_CloudStorage_AvroFormat));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionDataSourceSettings_CloudStorage_AvroFormat(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionDataSourceSettings_CloudStorage_AvroFormat(const IngestionDataSourceSettings_CloudStorage_AvroFormat& from) : IngestionDataSourceSettings_CloudStorage_AvroFormat(nullptr, from) {}
  inline IngestionDataSourceSettings_CloudStorage_AvroFormat(IngestionDataSourceSettings_CloudStorage_AvroFormat&& from) noexcept : IngestionDataSourceSettings_CloudStorage_AvroFormat(nullptr, ::std::move(from)) {}
  inline IngestionDataSourceSettings_CloudStorage_AvroFormat& operator=(const IngestionDataSourceSettings_CloudStorage_AvroFormat& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionDataSourceSettings_CloudStorage_AvroFormat& operator=(IngestionDataSourceSettings_CloudStorage_AvroFormat&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionDataSourceSettings_CloudStorage_AvroFormat& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionDataSourceSettings_CloudStorage_AvroFormat>(&IngestionDataSourceSettings_CloudStorage_AvroFormat_globals_);
  }
  static constexpr int kIndexInFileMessages = 4;
  friend void swap(IngestionDataSourceSettings_CloudStorage_AvroFormat& a, IngestionDataSourceSettings_CloudStorage_AvroFormat& b) { a.Swap(&b); }
  inline void Swap(IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<IngestionDataSourceSettings_CloudStorage_AvroFormat>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const IngestionDataSourceSettings_CloudStorage_AvroFormat& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const IngestionDataSourceSettings_CloudStorage_AvroFormat& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat"; }

  explicit IngestionDataSourceSettings_CloudStorage_AvroFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionDataSourceSettings_CloudStorage_AvroFormat(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionDataSourceSettings_CloudStorage_AvroFormat& from);
  IngestionDataSourceSettings_CloudStorage_AvroFormat(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionDataSourceSettings_CloudStorage_AvroFormat&& from) noexcept
      : IngestionDataSourceSettings_CloudStorage_AvroFormat(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionDataSourceSettings_AwsKinesis final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis) */ {
 public:
  inline IngestionDataSourceSettings_AwsKinesis() : IngestionDataSourceSettings_AwsKinesis(nullptr) {}
  ~IngestionDataSourceSettings_AwsKinesis() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionDataSourceSettings_AwsKinesis));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionDataSourceSettings_AwsKinesis(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionDataSourceSettings_AwsKinesis(const IngestionDataSourceSettings_AwsKinesis& from) : IngestionDataSourceSettings_AwsKinesis(nullptr, from) {}
  inline IngestionDataSourceSettings_AwsKinesis(IngestionDataSourceSettings_AwsKinesis&& from) noexcept : IngestionDataSourceSettings_AwsKinesis(nullptr, ::std::move(from)) {}
  inline IngestionDataSourceSettings_AwsKinesis& operator=(const IngestionDataSourceSettings_AwsKinesis& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionDataSourceSettings_AwsKinesis& operator=(IngestionDataSourceSettings_AwsKinesis&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionDataSourceSettings_AwsKinesis& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionDataSourceSettings_AwsKinesis>(&IngestionDataSourceSettings_AwsKinesis_globals_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(IngestionDataSourceSettings_AwsKinesis& a, IngestionDataSourceSettings_AwsKinesis& b) { a.Swap(&b); }
  inline void Swap(IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IngestionDataSourceSettings_AwsKinesis>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IngestionDataSourceSettings_AwsKinesis& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IngestionDataSourceSettings_AwsKinesis& from) { IngestionDataSourceSettings_AwsKinesis::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis"; }

  explicit IngestionDataSourceSettings_AwsKinesis(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionDataSourceSettings_AwsKinesis(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionDataSourceSettings_AwsKinesis& from);
  IngestionDataSourceSettings_AwsKinesis(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionDataSourceSettings_AwsKinesis&& from) noexcept
      : IngestionDataSourceSettings_AwsKinesis(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using State = IngestionDataSourceSettings_AwsKinesis_State;
  static constexpr State STATE_UNSPECIFIED = IngestionDataSourceSettings_AwsKinesis_State_STATE_UNSPECIFIED;
  static constexpr State ACTIVE = IngestionDataSourceSettings_AwsKinesis_State_ACTIVE;
  static constexpr State KINESIS_PERMISSION_DENIED = IngestionDataSourceSettings_AwsKinesis_State_KINESIS_PERMISSION_DENIED;
  static constexpr State PUBLISH_PERMISSION_DENIED = IngestionDataSourceSettings_AwsKinesis_State_PUBLISH_PERMISSION_DENIED;
  static constexpr State STREAM_NOT_FOUND = IngestionDataSourceSettings_AwsKinesis_State_STREAM_NOT_FOUND;
  static constexpr State CONSUMER_NOT_FOUND = IngestionDataSourceSettings_AwsKinesis_State_CONSUMER_NOT_FOUND;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return IngestionDataSourceSettings_AwsKinesis_State_IsValid(value);
  }
  static constexpr State State_MIN = IngestionDataSourceSettings_AwsKinesis_State_State_MIN;
  static constexpr State State_MAX = IngestionDataSourceSettings_AwsKinesis_State_State_MAX;
  static constexpr int State_ARRAYSIZE = IngestionDataSourceSettings_AwsKinesis_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return IngestionDataSourceSettings_AwsKinesis_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return IngestionDataSourceSettings_AwsKinesis_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return IngestionDataSourceSettings_AwsKinesis_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kStreamArnFieldNumber = 2,
    kConsumerArnFieldNumber = 3,
    kAwsRoleArnFieldNumber = 4,
    kGcpServiceAccountFieldNumber = 5,
    kStateFieldNumber = 1,
  };
  // string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_stream_arn() ;
  [[nodiscard]] const ::std::string& stream_arn() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_stream_arn(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_stream_arn();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_stream_arn();
  void set_allocated_stream_arn(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_stream_arn() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_stream_arn(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_stream_arn();

  public:
  // string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED];
  void clear_consumer_arn() ;
  [[nodiscard]] const ::std::string& consumer_arn() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_consumer_arn(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_consumer_arn();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_consumer_arn();
  void set_allocated_consumer_arn(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_consumer_arn() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_consumer_arn(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_consumer_arn();

  public:
  // string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED];
  void clear_aws_role_arn() ;
  [[nodiscard]] const ::std::string& aws_role_arn() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_aws_role_arn(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_aws_role_arn();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_aws_role_arn();
  void set_allocated_aws_role_arn(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_aws_role_arn() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_aws_role_arn(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_aws_role_arn();

  public:
  // string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED];
  void clear_gcp_service_account() ;
  [[nodiscard]] const ::std::string& gcp_service_account() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_gcp_service_account(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_gcp_service_account();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_gcp_service_account();
  void set_allocated_gcp_service_account(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_gcp_service_account() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_gcp_service_account(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_gcp_service_account();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
  void clear_state() ;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State state() const;
  void set_state(::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State value);

  private:
  ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State _internal_state() const;
  void _internal_set_state(::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          0, 117,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IngestionDataSourceSettings_AwsKinesis& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr stream_arn_;
    ::google::protobuf::internal::ArenaStringPtr consumer_arn_;
    ::google::protobuf::internal::ArenaStringPtr aws_role_arn_;
    ::google::protobuf::internal::ArenaStringPtr gcp_service_account_;
    int state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetTopicRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.GetTopicRequest) */ {
 public:
  inline GetTopicRequest() : GetTopicRequest(nullptr) {}
  ~GetTopicRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetTopicRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetTopicRequest));
  }
#endif

  template <typename = void>
  explicit constexpr GetTopicRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetTopicRequest(const GetTopicRequest& from) : GetTopicRequest(nullptr, from) {}
  inline GetTopicRequest(GetTopicRequest&& from) noexcept : GetTopicRequest(nullptr, ::std::move(from)) {}
  inline GetTopicRequest& operator=(const GetTopicRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetTopicRequest& operator=(GetTopicRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetTopicRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetTopicRequest>(&GetTopicRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 17;
  friend void swap(GetTopicRequest& a, GetTopicRequest& b) { a.Swap(&b); }
  inline void Swap(GetTopicRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetTopicRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetTopicRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GetTopicRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GetTopicRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GetTopicRequest& from) { GetTopicRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GetTopicRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.GetTopicRequest"; }

  explicit GetTopicRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetTopicRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetTopicRequest& from);
  GetTopicRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetTopicRequest&& from) noexcept
      : GetTopicRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTopicFieldNumber = 1,
  };
  // string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.GetTopicRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 46,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GetTopicRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetSubscriptionRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.GetSubscriptionRequest) */ {
 public:
  inline GetSubscriptionRequest() : GetSubscriptionRequest(nullptr) {}
  ~GetSubscriptionRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetSubscriptionRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetSubscriptionRequest));
  }
#endif

  template <typename = void>
  explicit constexpr GetSubscriptionRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetSubscriptionRequest(const GetSubscriptionRequest& from) : GetSubscriptionRequest(nullptr, from) {}
  inline GetSubscriptionRequest(GetSubscriptionRequest&& from) noexcept : GetSubscriptionRequest(nullptr, ::std::move(from)) {}
  inline GetSubscriptionRequest& operator=(const GetSubscriptionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetSubscriptionRequest& operator=(GetSubscriptionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetSubscriptionRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetSubscriptionRequest>(&GetSubscriptionRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 46;
  friend void swap(GetSubscriptionRequest& a, GetSubscriptionRequest& b) { a.Swap(&b); }
  inline void Swap(GetSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetSubscriptionRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GetSubscriptionRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GetSubscriptionRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GetSubscriptionRequest& from) { GetSubscriptionRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GetSubscriptionRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.GetSubscriptionRequest"; }

  explicit GetSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetSubscriptionRequest& from);
  GetSubscriptionRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetSubscriptionRequest&& from) noexcept
      : GetSubscriptionRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
  };
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.GetSubscriptionRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 60,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GetSubscriptionRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED GetSnapshotRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.GetSnapshotRequest) */ {
 public:
  inline GetSnapshotRequest() : GetSnapshotRequest(nullptr) {}
  ~GetSnapshotRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(GetSnapshotRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(GetSnapshotRequest));
  }
#endif

  template <typename = void>
  explicit constexpr GetSnapshotRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline GetSnapshotRequest(const GetSnapshotRequest& from) : GetSnapshotRequest(nullptr, from) {}
  inline GetSnapshotRequest(GetSnapshotRequest&& from) noexcept : GetSnapshotRequest(nullptr, ::std::move(from)) {}
  inline GetSnapshotRequest& operator=(const GetSnapshotRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline GetSnapshotRequest& operator=(GetSnapshotRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const GetSnapshotRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<GetSnapshotRequest>(&GetSnapshotRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 66;
  friend void swap(GetSnapshotRequest& a, GetSnapshotRequest& b) { a.Swap(&b); }
  inline void Swap(GetSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(GetSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] GetSnapshotRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<GetSnapshotRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const GetSnapshotRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const GetSnapshotRequest& from) { GetSnapshotRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(GetSnapshotRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.GetSnapshotRequest"; }

  explicit GetSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  GetSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const GetSnapshotRequest& from);
  GetSnapshotRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, GetSnapshotRequest&& from) noexcept
      : GetSnapshotRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSnapshotFieldNumber = 1,
  };
  // string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_snapshot() ;
  [[nodiscard]] const ::std::string& snapshot() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_snapshot(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_snapshot();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_snapshot();
  void set_allocated_snapshot(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_snapshot() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_snapshot(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_snapshot();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.GetSnapshotRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 52,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const GetSnapshotRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr snapshot_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DetachSubscriptionResponse final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.DetachSubscriptionResponse) */ {
 public:
  inline DetachSubscriptionResponse() : DetachSubscriptionResponse(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DetachSubscriptionResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DetachSubscriptionResponse));
  }
#endif

  template <typename = void>
  explicit constexpr DetachSubscriptionResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DetachSubscriptionResponse(const DetachSubscriptionResponse& from) : DetachSubscriptionResponse(nullptr, from) {}
  inline DetachSubscriptionResponse(DetachSubscriptionResponse&& from) noexcept : DetachSubscriptionResponse(nullptr, ::std::move(from)) {}
  inline DetachSubscriptionResponse& operator=(const DetachSubscriptionResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline DetachSubscriptionResponse& operator=(DetachSubscriptionResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DetachSubscriptionResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DetachSubscriptionResponse>(&DetachSubscriptionResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 29;
  friend void swap(DetachSubscriptionResponse& a, DetachSubscriptionResponse& b) { a.Swap(&b); }
  inline void Swap(DetachSubscriptionResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DetachSubscriptionResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DetachSubscriptionResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<DetachSubscriptionResponse>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const DetachSubscriptionResponse& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const DetachSubscriptionResponse& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.DetachSubscriptionResponse"; }

  explicit DetachSubscriptionResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DetachSubscriptionResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DetachSubscriptionResponse& from);
  DetachSubscriptionResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DetachSubscriptionResponse&& from) noexcept
      : DetachSubscriptionResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.DetachSubscriptionResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DetachSubscriptionRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.DetachSubscriptionRequest) */ {
 public:
  inline DetachSubscriptionRequest() : DetachSubscriptionRequest(nullptr) {}
  ~DetachSubscriptionRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DetachSubscriptionRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DetachSubscriptionRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DetachSubscriptionRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DetachSubscriptionRequest(const DetachSubscriptionRequest& from) : DetachSubscriptionRequest(nullptr, from) {}
  inline DetachSubscriptionRequest(DetachSubscriptionRequest&& from) noexcept : DetachSubscriptionRequest(nullptr, ::std::move(from)) {}
  inline DetachSubscriptionRequest& operator=(const DetachSubscriptionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DetachSubscriptionRequest& operator=(DetachSubscriptionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DetachSubscriptionRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DetachSubscriptionRequest>(&DetachSubscriptionRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 28;
  friend void swap(DetachSubscriptionRequest& a, DetachSubscriptionRequest& b) { a.Swap(&b); }
  inline void Swap(DetachSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DetachSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DetachSubscriptionRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DetachSubscriptionRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DetachSubscriptionRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DetachSubscriptionRequest& from) { DetachSubscriptionRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DetachSubscriptionRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.DetachSubscriptionRequest"; }

  explicit DetachSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DetachSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DetachSubscriptionRequest& from);
  DetachSubscriptionRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DetachSubscriptionRequest&& from) noexcept
      : DetachSubscriptionRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
  };
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.DetachSubscriptionRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 63,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DetachSubscriptionRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteTopicRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.DeleteTopicRequest) */ {
 public:
  inline DeleteTopicRequest() : DeleteTopicRequest(nullptr) {}
  ~DeleteTopicRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteTopicRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteTopicRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteTopicRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteTopicRequest(const DeleteTopicRequest& from) : DeleteTopicRequest(nullptr, from) {}
  inline DeleteTopicRequest(DeleteTopicRequest&& from) noexcept : DeleteTopicRequest(nullptr, ::std::move(from)) {}
  inline DeleteTopicRequest& operator=(const DeleteTopicRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteTopicRequest& operator=(DeleteTopicRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteTopicRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteTopicRequest>(&DeleteTopicRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 27;
  friend void swap(DeleteTopicRequest& a, DeleteTopicRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteTopicRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteTopicRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteTopicRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteTopicRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteTopicRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteTopicRequest& from) { DeleteTopicRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteTopicRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.DeleteTopicRequest"; }

  explicit DeleteTopicRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteTopicRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteTopicRequest& from);
  DeleteTopicRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteTopicRequest&& from) noexcept
      : DeleteTopicRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTopicFieldNumber = 1,
  };
  // string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.DeleteTopicRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 49,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteTopicRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteSubscriptionRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.DeleteSubscriptionRequest) */ {
 public:
  inline DeleteSubscriptionRequest() : DeleteSubscriptionRequest(nullptr) {}
  ~DeleteSubscriptionRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteSubscriptionRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteSubscriptionRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteSubscriptionRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteSubscriptionRequest(const DeleteSubscriptionRequest& from) : DeleteSubscriptionRequest(nullptr, from) {}
  inline DeleteSubscriptionRequest(DeleteSubscriptionRequest&& from) noexcept : DeleteSubscriptionRequest(nullptr, ::std::move(from)) {}
  inline DeleteSubscriptionRequest& operator=(const DeleteSubscriptionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteSubscriptionRequest& operator=(DeleteSubscriptionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteSubscriptionRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteSubscriptionRequest>(&DeleteSubscriptionRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 50;
  friend void swap(DeleteSubscriptionRequest& a, DeleteSubscriptionRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteSubscriptionRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteSubscriptionRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteSubscriptionRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteSubscriptionRequest& from) { DeleteSubscriptionRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteSubscriptionRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.DeleteSubscriptionRequest"; }

  explicit DeleteSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteSubscriptionRequest& from);
  DeleteSubscriptionRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteSubscriptionRequest&& from) noexcept
      : DeleteSubscriptionRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
  };
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.DeleteSubscriptionRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 63,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteSubscriptionRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeleteSnapshotRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.DeleteSnapshotRequest) */ {
 public:
  inline DeleteSnapshotRequest() : DeleteSnapshotRequest(nullptr) {}
  ~DeleteSnapshotRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeleteSnapshotRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeleteSnapshotRequest));
  }
#endif

  template <typename = void>
  explicit constexpr DeleteSnapshotRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeleteSnapshotRequest(const DeleteSnapshotRequest& from) : DeleteSnapshotRequest(nullptr, from) {}
  inline DeleteSnapshotRequest(DeleteSnapshotRequest&& from) noexcept : DeleteSnapshotRequest(nullptr, ::std::move(from)) {}
  inline DeleteSnapshotRequest& operator=(const DeleteSnapshotRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeleteSnapshotRequest& operator=(DeleteSnapshotRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeleteSnapshotRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeleteSnapshotRequest>(&DeleteSnapshotRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 69;
  friend void swap(DeleteSnapshotRequest& a, DeleteSnapshotRequest& b) { a.Swap(&b); }
  inline void Swap(DeleteSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeleteSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeleteSnapshotRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeleteSnapshotRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeleteSnapshotRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeleteSnapshotRequest& from) { DeleteSnapshotRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeleteSnapshotRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.DeleteSnapshotRequest"; }

  explicit DeleteSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeleteSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeleteSnapshotRequest& from);
  DeleteSnapshotRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeleteSnapshotRequest&& from) noexcept
      : DeleteSnapshotRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSnapshotFieldNumber = 1,
  };
  // string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_snapshot() ;
  [[nodiscard]] const ::std::string& snapshot() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_snapshot(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_snapshot();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_snapshot();
  void set_allocated_snapshot(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_snapshot() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_snapshot(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_snapshot();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.DeleteSnapshotRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          0, 55,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeleteSnapshotRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr snapshot_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED DeadLetterPolicy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.DeadLetterPolicy) */ {
 public:
  inline DeadLetterPolicy() : DeadLetterPolicy(nullptr) {}
  ~DeadLetterPolicy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(DeadLetterPolicy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(DeadLetterPolicy));
  }
#endif

  template <typename = void>
  explicit constexpr DeadLetterPolicy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline DeadLetterPolicy(const DeadLetterPolicy& from) : DeadLetterPolicy(nullptr, from) {}
  inline DeadLetterPolicy(DeadLetterPolicy&& from) noexcept : DeadLetterPolicy(nullptr, ::std::move(from)) {}
  inline DeadLetterPolicy& operator=(const DeadLetterPolicy& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeadLetterPolicy& operator=(DeadLetterPolicy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const DeadLetterPolicy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<DeadLetterPolicy>(&DeadLetterPolicy_globals_);
  }
  static constexpr int kIndexInFileMessages = 34;
  friend void swap(DeadLetterPolicy& a, DeadLetterPolicy& b) { a.Swap(&b); }
  inline void Swap(DeadLetterPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeadLetterPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] DeadLetterPolicy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<DeadLetterPolicy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const DeadLetterPolicy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const DeadLetterPolicy& from) { DeadLetterPolicy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(DeadLetterPolicy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.DeadLetterPolicy"; }

  explicit DeadLetterPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  DeadLetterPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DeadLetterPolicy& from);
  DeadLetterPolicy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, DeadLetterPolicy&& from) noexcept
      : DeadLetterPolicy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDeadLetterTopicFieldNumber = 1,
    kMaxDeliveryAttemptsFieldNumber = 2,
  };
  // string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_dead_letter_topic() ;
  [[nodiscard]] const ::std::string& dead_letter_topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_dead_letter_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_dead_letter_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_dead_letter_topic();
  void set_allocated_dead_letter_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_dead_letter_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_dead_letter_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_dead_letter_topic();

  public:
  // int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_max_delivery_attempts() ;
  [[nodiscard]] ::int32_t max_delivery_attempts() const;
  void set_max_delivery_attempts(::int32_t value);

  private:
  ::int32_t _internal_max_delivery_attempts() const;
  void _internal_set_max_delivery_attempts(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.DeadLetterPolicy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 59,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const DeadLetterPolicy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr dead_letter_topic_;
    ::int32_t max_delivery_attempts_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CreateSnapshotRequest_LabelsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                             ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType =
      ::google::protobuf::internal::MapEntry<::std::string, ::std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  CreateSnapshotRequest_LabelsEntry_DoNotUse();
  template <typename = void>
  explicit constexpr CreateSnapshotRequest_LabelsEntry_DoNotUse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);
  explicit CreateSnapshotRequest_LabelsEntry_DoNotUse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr const void* PROTOBUF_NONNULL internal_message_globals() {
    return &CreateSnapshotRequest_LabelsEntry_DoNotUse_globals_;
  }


  static constexpr auto InternalGenerateClassData_(
      const ::google::protobuf::MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

 private:
  friend class ::google::protobuf::MessageLite;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
  friend ::google::protobuf::internal::PrivateAccess;
  friend CreateSnapshotRequest_LabelsEntry_DoNotUseGlobalsTypeInternal;

  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 67,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CloudStorageConfig_TextConfig final : public ::google::protobuf::internal::ZeroFieldsBase
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.CloudStorageConfig.TextConfig) */ {
 public:
  inline CloudStorageConfig_TextConfig() : CloudStorageConfig_TextConfig(nullptr) {}

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CloudStorageConfig_TextConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CloudStorageConfig_TextConfig));
  }
#endif

  template <typename = void>
  explicit constexpr CloudStorageConfig_TextConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CloudStorageConfig_TextConfig(const CloudStorageConfig_TextConfig& from) : CloudStorageConfig_TextConfig(nullptr, from) {}
  inline CloudStorageConfig_TextConfig(CloudStorageConfig_TextConfig&& from) noexcept : CloudStorageConfig_TextConfig(nullptr, ::std::move(from)) {}
  inline CloudStorageConfig_TextConfig& operator=(const CloudStorageConfig_TextConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline CloudStorageConfig_TextConfig& operator=(CloudStorageConfig_TextConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CloudStorageConfig_TextConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CloudStorageConfig_TextConfig>(&CloudStorageConfig_TextConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 42;
  friend void swap(CloudStorageConfig_TextConfig& a, CloudStorageConfig_TextConfig& b) { a.Swap(&b); }
  inline void Swap(CloudStorageConfig_TextConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CloudStorageConfig_TextConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] CloudStorageConfig_TextConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::internal::ZeroFieldsBase::DefaultConstruct<CloudStorageConfig_TextConfig>(arena);
  }
  using ::google::protobuf::internal::ZeroFieldsBase::CopyFrom;
  inline void CopyFrom(const CloudStorageConfig_TextConfig& from) { ::google::protobuf::internal::ZeroFieldsBase::CopyImpl(*this, from); }
  using ::google::protobuf::internal::ZeroFieldsBase::MergeFrom;
  void MergeFrom(const CloudStorageConfig_TextConfig& from) { ::google::protobuf::internal::ZeroFieldsBase::MergeImpl(*this, from); }

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.CloudStorageConfig.TextConfig"; }

  explicit CloudStorageConfig_TextConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CloudStorageConfig_TextConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CloudStorageConfig_TextConfig& from);
  CloudStorageConfig_TextConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CloudStorageConfig_TextConfig&& from) noexcept
      : CloudStorageConfig_TextConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.CloudStorageConfig.TextConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 0,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CloudStorageConfig_AvroConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.CloudStorageConfig.AvroConfig) */ {
 public:
  inline CloudStorageConfig_AvroConfig() : CloudStorageConfig_AvroConfig(nullptr) {}
  ~CloudStorageConfig_AvroConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CloudStorageConfig_AvroConfig));
  }
#endif

  template <typename = void>
  explicit constexpr CloudStorageConfig_AvroConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CloudStorageConfig_AvroConfig(const CloudStorageConfig_AvroConfig& from) : CloudStorageConfig_AvroConfig(nullptr, from) {}
  inline CloudStorageConfig_AvroConfig(CloudStorageConfig_AvroConfig&& from) noexcept : CloudStorageConfig_AvroConfig(nullptr, ::std::move(from)) {}
  inline CloudStorageConfig_AvroConfig& operator=(const CloudStorageConfig_AvroConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline CloudStorageConfig_AvroConfig& operator=(CloudStorageConfig_AvroConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CloudStorageConfig_AvroConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CloudStorageConfig_AvroConfig>(&CloudStorageConfig_AvroConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 43;
  friend void swap(CloudStorageConfig_AvroConfig& a, CloudStorageConfig_AvroConfig& b) { a.Swap(&b); }
  inline void Swap(CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CloudStorageConfig_AvroConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CloudStorageConfig_AvroConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CloudStorageConfig_AvroConfig& from) { CloudStorageConfig_AvroConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.CloudStorageConfig.AvroConfig"; }

  explicit CloudStorageConfig_AvroConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CloudStorageConfig_AvroConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CloudStorageConfig_AvroConfig& from);
  CloudStorageConfig_AvroConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CloudStorageConfig_AvroConfig&& from) noexcept
      : CloudStorageConfig_AvroConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kWriteMetadataFieldNumber = 1,
    kUseTopicSchemaFieldNumber = 2,
  };
  // bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_write_metadata() ;
  [[nodiscard]] bool write_metadata() const;
  void set_write_metadata(bool value);

  private:
  bool _internal_write_metadata() const;
  void _internal_set_write_metadata(bool value);

  public:
  // bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_use_topic_schema() ;
  [[nodiscard]] bool use_topic_schema() const;
  void set_use_topic_schema(bool value);

  private:
  bool _internal_use_topic_schema() const;
  void _internal_set_use_topic_schema(bool value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.CloudStorageConfig.AvroConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CloudStorageConfig_AvroConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    bool write_metadata_;
    bool use_topic_schema_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED BigQueryConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.BigQueryConfig) */ {
 public:
  inline BigQueryConfig() : BigQueryConfig(nullptr) {}
  ~BigQueryConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(BigQueryConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(BigQueryConfig));
  }
#endif

  template <typename = void>
  explicit constexpr BigQueryConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline BigQueryConfig(const BigQueryConfig& from) : BigQueryConfig(nullptr, from) {}
  inline BigQueryConfig(BigQueryConfig&& from) noexcept : BigQueryConfig(nullptr, ::std::move(from)) {}
  inline BigQueryConfig& operator=(const BigQueryConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline BigQueryConfig& operator=(BigQueryConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const BigQueryConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<BigQueryConfig>(&BigQueryConfig_globals_);
  }
  static constexpr int kIndexInFileMessages = 41;
  friend void swap(BigQueryConfig& a, BigQueryConfig& b) { a.Swap(&b); }
  inline void Swap(BigQueryConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(BigQueryConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] BigQueryConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<BigQueryConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const BigQueryConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const BigQueryConfig& from) { BigQueryConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(BigQueryConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.BigQueryConfig"; }

  explicit BigQueryConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  BigQueryConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BigQueryConfig& from);
  BigQueryConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, BigQueryConfig&& from) noexcept
      : BigQueryConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using State = BigQueryConfig_State;
  static constexpr State STATE_UNSPECIFIED = BigQueryConfig_State_STATE_UNSPECIFIED;
  static constexpr State ACTIVE = BigQueryConfig_State_ACTIVE;
  static constexpr State PERMISSION_DENIED = BigQueryConfig_State_PERMISSION_DENIED;
  static constexpr State NOT_FOUND = BigQueryConfig_State_NOT_FOUND;
  static constexpr State SCHEMA_MISMATCH = BigQueryConfig_State_SCHEMA_MISMATCH;
  static constexpr State IN_TRANSIT_LOCATION_RESTRICTION = BigQueryConfig_State_IN_TRANSIT_LOCATION_RESTRICTION;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return BigQueryConfig_State_IsValid(value);
  }
  static constexpr State State_MIN = BigQueryConfig_State_State_MIN;
  static constexpr State State_MAX = BigQueryConfig_State_State_MAX;
  static constexpr int State_ARRAYSIZE = BigQueryConfig_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return BigQueryConfig_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return BigQueryConfig_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return BigQueryConfig_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kTableFieldNumber = 1,
    kServiceAccountEmailFieldNumber = 7,
    kUseTopicSchemaFieldNumber = 2,
    kWriteMetadataFieldNumber = 3,
    kDropUnknownFieldsFieldNumber = 4,
    kUseTableSchemaFieldNumber = 6,
    kStateFieldNumber = 5,
  };
  // string table = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_table() ;
  [[nodiscard]] const ::std::string& table() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_table(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_table();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_table();
  void set_allocated_table(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_table() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_table(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_table();

  public:
  // string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL];
  void clear_service_account_email() ;
  [[nodiscard]] const ::std::string& service_account_email() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_service_account_email(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_service_account_email();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_service_account_email();
  void set_allocated_service_account_email(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_service_account_email() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_service_account_email(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_service_account_email();

  public:
  // bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_use_topic_schema() ;
  [[nodiscard]] bool use_topic_schema() const;
  void set_use_topic_schema(bool value);

  private:
  bool _internal_use_topic_schema() const;
  void _internal_set_use_topic_schema(bool value);

  public:
  // bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_write_metadata() ;
  [[nodiscard]] bool write_metadata() const;
  void set_write_metadata(bool value);

  private:
  bool _internal_write_metadata() const;
  void _internal_set_write_metadata(bool value);

  public:
  // bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL];
  void clear_drop_unknown_fields() ;
  [[nodiscard]] bool drop_unknown_fields() const;
  void set_drop_unknown_fields(bool value);

  private:
  bool _internal_drop_unknown_fields() const;
  void _internal_set_drop_unknown_fields(bool value);

  public:
  // bool use_table_schema = 6 [(.google.api.field_behavior) = OPTIONAL];
  void clear_use_table_schema() ;
  [[nodiscard]] bool use_table_schema() const;
  void set_use_table_schema(bool value);

  private:
  bool _internal_use_table_schema() const;
  void _internal_set_use_table_schema(bool value);

  public:
  // .google.pubsub.v1.BigQueryConfig.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
  void clear_state() ;
  [[nodiscard]] ::google::pubsub::v1::BigQueryConfig_State state() const;
  void set_state(::google::pubsub::v1::BigQueryConfig_State value);

  private:
  ::google::pubsub::v1::BigQueryConfig_State _internal_state() const;
  void _internal_set_state(::google::pubsub::v1::BigQueryConfig_State value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.BigQueryConfig)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          0, 66,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const BigQueryConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr table_;
    ::google::protobuf::internal::ArenaStringPtr service_account_email_;
    bool use_topic_schema_;
    bool write_metadata_;
    bool drop_unknown_fields_;
    bool use_table_schema_;
    int state_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED AcknowledgeRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.AcknowledgeRequest) */ {
 public:
  inline AcknowledgeRequest() : AcknowledgeRequest(nullptr) {}
  ~AcknowledgeRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(AcknowledgeRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(AcknowledgeRequest));
  }
#endif

  template <typename = void>
  explicit constexpr AcknowledgeRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline AcknowledgeRequest(const AcknowledgeRequest& from) : AcknowledgeRequest(nullptr, from) {}
  inline AcknowledgeRequest(AcknowledgeRequest&& from) noexcept : AcknowledgeRequest(nullptr, ::std::move(from)) {}
  inline AcknowledgeRequest& operator=(const AcknowledgeRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline AcknowledgeRequest& operator=(AcknowledgeRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const AcknowledgeRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<AcknowledgeRequest>(&AcknowledgeRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 55;
  friend void swap(AcknowledgeRequest& a, AcknowledgeRequest& b) { a.Swap(&b); }
  inline void Swap(AcknowledgeRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AcknowledgeRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] AcknowledgeRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<AcknowledgeRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const AcknowledgeRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const AcknowledgeRequest& from) { AcknowledgeRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(AcknowledgeRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.AcknowledgeRequest"; }

  explicit AcknowledgeRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  AcknowledgeRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AcknowledgeRequest& from);
  AcknowledgeRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, AcknowledgeRequest&& from) noexcept
      : AcknowledgeRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAckIdsFieldNumber = 2,
    kSubscriptionFieldNumber = 1,
  };
  // repeated string ack_ids = 2 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] int ack_ids_size()
      const;
  private:
  int _internal_ack_ids_size() const;

  public:
  void clear_ack_ids() ;
  [[nodiscard]] const ::std::string& ack_ids(int index) const;
  ::std::string* PROTOBUF_NONNULL mutable_ack_ids(int index);
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ack_ids(int index, Arg_&& value, Args_... args);
  ::std::string* PROTOBUF_NONNULL add_ack_ids();
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void add_ack_ids(Arg_&& value, Args_... args);
  [[nodiscard]] const
      ::google::protobuf::RepeatedPtrField<::std::string>&
      ack_ids() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::std::string>*
      PROTOBUF_NONNULL
      mutable_ack_ids();

  private:
  const ::google::protobuf::RepeatedPtrField<::std::string>& _internal_ack_ids() const;
  ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL _internal_mutable_ack_ids();

  public:
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.AcknowledgeRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          0, 63,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const AcknowledgeRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<::std::string> ack_ids_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Snapshot final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.Snapshot) */ {
 public:
  inline Snapshot() : Snapshot(nullptr) {}
  ~Snapshot() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Snapshot* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Snapshot));
  }
#endif

  template <typename = void>
  explicit constexpr Snapshot(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Snapshot(const Snapshot& from) : Snapshot(nullptr, from) {}
  inline Snapshot(Snapshot&& from) noexcept : Snapshot(nullptr, ::std::move(from)) {}
  inline Snapshot& operator=(const Snapshot& from) {
    CopyFrom(from);
    return *this;
  }
  inline Snapshot& operator=(Snapshot&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Snapshot& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Snapshot>(&Snapshot_globals_);
  }
  static constexpr int kIndexInFileMessages = 65;
  friend void swap(Snapshot& a, Snapshot& b) { a.Swap(&b); }
  inline void Swap(Snapshot* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Snapshot* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Snapshot* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Snapshot>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Snapshot& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Snapshot& from) { Snapshot::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Snapshot* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.Snapshot"; }

  explicit Snapshot(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Snapshot(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Snapshot& from);
  Snapshot(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Snapshot&& from) noexcept
      : Snapshot(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kTopicFieldNumber = 2,
    kExpireTimeFieldNumber = 3,
    kLabelsFieldNumber = 4,
  };
  // string name = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_expire_time()
      const;
  void clear_expire_time() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& expire_time() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_expire_time();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_expire_time();
  void set_allocated_expire_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_expire_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_expire_time();

  private:
  const ::google::protobuf::Timestamp& _internal_expire_time() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_expire_time();

  public:
  // map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int labels_size()
      const;
  private:
  int _internal_labels_size() const;

  public:
  void clear_labels() ;
  [[nodiscard]] const ::google::protobuf::Map<::std::string, ::std::string>& labels() const;
  [[nodiscard]] ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL mutable_labels();

  private:
  const ::google::protobuf::Map<::std::string, ::std::string>& _internal_labels() const;
  ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL _internal_mutable_labels();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.Snapshot)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 4,
                          2, 49,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Snapshot& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE expire_time_;
    ::google::protobuf::internal::MapField<Snapshot_LabelsEntry_DoNotUse, ::std::string, ::std::string> labels_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED SeekRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.SeekRequest) */ {
 public:
  inline SeekRequest() : SeekRequest(nullptr) {}
  ~SeekRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(SeekRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(SeekRequest));
  }
#endif

  template <typename = void>
  explicit constexpr SeekRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline SeekRequest(const SeekRequest& from) : SeekRequest(nullptr, from) {}
  inline SeekRequest(SeekRequest&& from) noexcept : SeekRequest(nullptr, ::std::move(from)) {}
  inline SeekRequest& operator=(const SeekRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline SeekRequest& operator=(SeekRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const SeekRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<SeekRequest>(&SeekRequest_globals_);
  }
  enum TargetCase {
    kTime = 2,
    kSnapshot = 3,
    TARGET_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 70;
  friend void swap(SeekRequest& a, SeekRequest& b) { a.Swap(&b); }
  inline void Swap(SeekRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SeekRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] SeekRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<SeekRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SeekRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SeekRequest& from) { SeekRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(SeekRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.SeekRequest"; }

  explicit SeekRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  SeekRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SeekRequest& from);
  SeekRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, SeekRequest&& from) noexcept
      : SeekRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
    kTimeFieldNumber = 2,
    kSnapshotFieldNumber = 3,
  };
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_time()
      const;
  private:
  bool _internal_has_time() const;

  public:
  void clear_time() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& time() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_time();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_time();
  void set_allocated_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_time();

  private:
  const ::google::protobuf::Timestamp& _internal_time() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_time();

  public:
  // string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
  [[nodiscard]] bool has_snapshot()
      const;
  void clear_snapshot() ;
  [[nodiscard]] const ::std::string& snapshot() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_snapshot(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_snapshot();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_snapshot();
  void set_allocated_snapshot(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_snapshot() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_snapshot(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_snapshot();

  public:
  void clear_target();
  TargetCase target_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.SeekRequest)
 private:
  class _Internal;
  void set_has_time();
  void set_has_snapshot();
  [[nodiscard]] inline bool has_target() const;
  inline void clear_has_target();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 3,
                          1, 57,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const SeekRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    union TargetUnion {
      constexpr TargetUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::protobuf::Timestamp* PROTOBUF_NULLABLE time_;
      ::google::protobuf::internal::ArenaStringPtr snapshot_;
    } target_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED RetryPolicy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.RetryPolicy) */ {
 public:
  inline RetryPolicy() : RetryPolicy(nullptr) {}
  ~RetryPolicy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(RetryPolicy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(RetryPolicy));
  }
#endif

  template <typename = void>
  explicit constexpr RetryPolicy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline RetryPolicy(const RetryPolicy& from) : RetryPolicy(nullptr, from) {}
  inline RetryPolicy(RetryPolicy&& from) noexcept : RetryPolicy(nullptr, ::std::move(from)) {}
  inline RetryPolicy& operator=(const RetryPolicy& from) {
    CopyFrom(from);
    return *this;
  }
  inline RetryPolicy& operator=(RetryPolicy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const RetryPolicy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<RetryPolicy>(&RetryPolicy_globals_);
  }
  static constexpr int kIndexInFileMessages = 33;
  friend void swap(RetryPolicy& a, RetryPolicy& b) { a.Swap(&b); }
  inline void Swap(RetryPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(RetryPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] RetryPolicy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<RetryPolicy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const RetryPolicy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const RetryPolicy& from) { RetryPolicy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(RetryPolicy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.RetryPolicy"; }

  explicit RetryPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  RetryPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const RetryPolicy& from);
  RetryPolicy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, RetryPolicy&& from) noexcept
      : RetryPolicy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMinimumBackoffFieldNumber = 1,
    kMaximumBackoffFieldNumber = 2,
  };
  // .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_minimum_backoff()
      const;
  void clear_minimum_backoff() ;
  [[nodiscard]] const ::google::protobuf::Duration& minimum_backoff() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_minimum_backoff();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_minimum_backoff();
  void set_allocated_minimum_backoff(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_minimum_backoff(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_minimum_backoff();

  private:
  const ::google::protobuf::Duration& _internal_minimum_backoff() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_minimum_backoff();

  public:
  // .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_maximum_backoff()
      const;
  void clear_maximum_backoff() ;
  [[nodiscard]] const ::google::protobuf::Duration& maximum_backoff() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_maximum_backoff();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_maximum_backoff();
  void set_allocated_maximum_backoff(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_maximum_backoff(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_maximum_backoff();

  private:
  const ::google::protobuf::Duration& _internal_maximum_backoff() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_maximum_backoff();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.RetryPolicy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const RetryPolicy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE minimum_backoff_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE maximum_backoff_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PushConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PushConfig) */ {
 public:
  inline PushConfig() : PushConfig(nullptr) {}
  ~PushConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PushConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PushConfig));
  }
#endif

  template <typename = void>
  explicit constexpr PushConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PushConfig(const PushConfig& from) : PushConfig(nullptr, from) {}
  inline PushConfig(PushConfig&& from) noexcept : PushConfig(nullptr, ::std::move(from)) {}
  inline PushConfig& operator=(const PushConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline PushConfig& operator=(PushConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PushConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PushConfig>(&PushConfig_globals_);
  }
  enum AuthenticationMethodCase {
    kOidcToken = 3,
    AUTHENTICATION_METHOD_NOT_SET = 0,
  };
  enum WrapperCase {
    kPubsubWrapper = 4,
    kNoWrapper = 5,
    WRAPPER_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 40;
  friend void swap(PushConfig& a, PushConfig& b) { a.Swap(&b); }
  inline void Swap(PushConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PushConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PushConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PushConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PushConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PushConfig& from) { PushConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PushConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PushConfig"; }

  explicit PushConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PushConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PushConfig& from);
  PushConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PushConfig&& from) noexcept
      : PushConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using OidcToken = PushConfig_OidcToken;
  using PubsubWrapper = PushConfig_PubsubWrapper;
  using NoWrapper = PushConfig_NoWrapper;

  // accessors -------------------------------------------------------
  enum : int {
    kPushEndpointFieldNumber = 1,
    kAttributesFieldNumber = 2,
    kOidcTokenFieldNumber = 3,
    kPubsubWrapperFieldNumber = 4,
    kNoWrapperFieldNumber = 5,
  };
  // string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_push_endpoint() ;
  [[nodiscard]] const ::std::string& push_endpoint() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_push_endpoint(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_push_endpoint();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_push_endpoint();
  void set_allocated_push_endpoint(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_push_endpoint() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_push_endpoint(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_push_endpoint();

  public:
  // map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int attributes_size()
      const;
  private:
  int _internal_attributes_size() const;

  public:
  void clear_attributes() ;
  [[nodiscard]] const ::google::protobuf::Map<::std::string, ::std::string>& attributes() const;
  [[nodiscard]] ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL mutable_attributes();

  private:
  const ::google::protobuf::Map<::std::string, ::std::string>& _internal_attributes() const;
  ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL _internal_mutable_attributes();

  public:
  // .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_oidc_token()
      const;
  private:
  bool _internal_has_oidc_token() const;

  public:
  void clear_oidc_token() ;
  [[nodiscard]] const ::google::pubsub::v1::PushConfig_OidcToken& oidc_token() const;
  [[nodiscard]] ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE release_oidc_token();
  ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NONNULL mutable_oidc_token();
  void set_allocated_oidc_token(::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_oidc_token(::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE unsafe_arena_release_oidc_token();

  private:
  const ::google::pubsub::v1::PushConfig_OidcToken& _internal_oidc_token() const;
  ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NONNULL _internal_mutable_oidc_token();

  public:
  // .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_pubsub_wrapper()
      const;
  private:
  bool _internal_has_pubsub_wrapper() const;

  public:
  void clear_pubsub_wrapper() ;
  [[nodiscard]] const ::google::pubsub::v1::PushConfig_PubsubWrapper& pubsub_wrapper() const;
  [[nodiscard]] ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE release_pubsub_wrapper();
  ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NONNULL mutable_pubsub_wrapper();
  void set_allocated_pubsub_wrapper(::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_pubsub_wrapper(::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE unsafe_arena_release_pubsub_wrapper();

  private:
  const ::google::pubsub::v1::PushConfig_PubsubWrapper& _internal_pubsub_wrapper() const;
  ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NONNULL _internal_mutable_pubsub_wrapper();

  public:
  // .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_no_wrapper()
      const;
  private:
  bool _internal_has_no_wrapper() const;

  public:
  void clear_no_wrapper() ;
  [[nodiscard]] const ::google::pubsub::v1::PushConfig_NoWrapper& no_wrapper() const;
  [[nodiscard]] ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE release_no_wrapper();
  ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NONNULL mutable_no_wrapper();
  void set_allocated_no_wrapper(::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_no_wrapper(::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE unsafe_arena_release_no_wrapper();

  private:
  const ::google::pubsub::v1::PushConfig_NoWrapper& _internal_no_wrapper() const;
  ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NONNULL _internal_mutable_no_wrapper();

  public:
  void clear_authentication_method();
  AuthenticationMethodCase authentication_method_case() const;
  void clear_wrapper();
  WrapperCase wrapper_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PushConfig)
 private:
  class _Internal;
  void set_has_oidc_token();
  void set_has_pubsub_wrapper();
  void set_has_no_wrapper();
  [[nodiscard]] inline bool has_authentication_method() const;
  inline void clear_has_authentication_method();
  [[nodiscard]] inline bool has_wrapper() const;
  inline void clear_has_wrapper();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 5,
                          4, 59,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PushConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr push_endpoint_;
    ::google::protobuf::internal::MapField<PushConfig_AttributesEntry_DoNotUse, ::std::string, ::std::string> attributes_;
    union AuthenticationMethodUnion {
      constexpr AuthenticationMethodUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE oidc_token_;
    } authentication_method_;
    union WrapperUnion {
      constexpr WrapperUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE pubsub_wrapper_;
      ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE no_wrapper_;
    } wrapper_;
    ::uint32_t _oneof_case_[2];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PubsubMessage final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PubsubMessage) */ {
 public:
  inline PubsubMessage() : PubsubMessage(nullptr) {}
  ~PubsubMessage() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PubsubMessage* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PubsubMessage));
  }
#endif

  template <typename = void>
  explicit constexpr PubsubMessage(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PubsubMessage(const PubsubMessage& from) : PubsubMessage(nullptr, from) {}
  inline PubsubMessage(PubsubMessage&& from) noexcept : PubsubMessage(nullptr, ::std::move(from)) {}
  inline PubsubMessage& operator=(const PubsubMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline PubsubMessage& operator=(PubsubMessage&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PubsubMessage& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PubsubMessage>(&PubsubMessage_globals_);
  }
  static constexpr int kIndexInFileMessages = 16;
  friend void swap(PubsubMessage& a, PubsubMessage& b) { a.Swap(&b); }
  inline void Swap(PubsubMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PubsubMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PubsubMessage* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PubsubMessage>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PubsubMessage& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PubsubMessage& from) { PubsubMessage::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PubsubMessage* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PubsubMessage"; }

  explicit PubsubMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PubsubMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PubsubMessage& from);
  PubsubMessage(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PubsubMessage&& from) noexcept
      : PubsubMessage(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDataFieldNumber = 1,
    kMessageIdFieldNumber = 3,
    kOrderingKeyFieldNumber = 5,
    kPublishTimeFieldNumber = 4,
    kAttributesFieldNumber = 2,
  };
  // bytes data = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_data() ;
  [[nodiscard]] const ::std::string& data() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_data(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_data();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_data();
  void set_allocated_data(::std::string* PROTOBUF_NULLABLE value);

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

  public:
  // string message_id = 3;
  void clear_message_id() ;
  [[nodiscard]] const ::std::string& message_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_message_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_message_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_message_id();
  void set_allocated_message_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_message_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_message_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_message_id();

  public:
  // string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL];
  void clear_ordering_key() ;
  [[nodiscard]] const ::std::string& ordering_key() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ordering_key(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_ordering_key();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_ordering_key();
  void set_allocated_ordering_key(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_ordering_key() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_ordering_key(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_ordering_key();

  public:
  // .google.protobuf.Timestamp publish_time = 4;
  [[nodiscard]] bool has_publish_time()
      const;
  void clear_publish_time() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& publish_time() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_publish_time();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_publish_time();
  void set_allocated_publish_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_publish_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_publish_time();

  private:
  const ::google::protobuf::Timestamp& _internal_publish_time() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_publish_time();

  public:
  // map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int attributes_size()
      const;
  private:
  int _internal_attributes_size() const;

  public:
  void clear_attributes() ;
  [[nodiscard]] const ::google::protobuf::Map<::std::string, ::std::string>& attributes() const;
  [[nodiscard]] ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL mutable_attributes();

  private:
  const ::google::protobuf::Map<::std::string, ::std::string>& _internal_attributes() const;
  ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL _internal_mutable_attributes();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PubsubMessage)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 5,
                          2, 71,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PubsubMessage& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr data_;
    ::google::protobuf::internal::ArenaStringPtr message_id_;
    ::google::protobuf::internal::ArenaStringPtr ordering_key_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE publish_time_;
    ::google::protobuf::internal::MapField<PubsubMessage_AttributesEntry_DoNotUse, ::std::string, ::std::string> attributes_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionFailureEvent_CloudStorageFailure final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure) */ {
 public:
  inline IngestionFailureEvent_CloudStorageFailure() : IngestionFailureEvent_CloudStorageFailure(nullptr) {}
  ~IngestionFailureEvent_CloudStorageFailure() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionFailureEvent_CloudStorageFailure));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionFailureEvent_CloudStorageFailure(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionFailureEvent_CloudStorageFailure(const IngestionFailureEvent_CloudStorageFailure& from) : IngestionFailureEvent_CloudStorageFailure(nullptr, from) {}
  inline IngestionFailureEvent_CloudStorageFailure(IngestionFailureEvent_CloudStorageFailure&& from) noexcept : IngestionFailureEvent_CloudStorageFailure(nullptr, ::std::move(from)) {}
  inline IngestionFailureEvent_CloudStorageFailure& operator=(const IngestionFailureEvent_CloudStorageFailure& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionFailureEvent_CloudStorageFailure& operator=(IngestionFailureEvent_CloudStorageFailure&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionFailureEvent_CloudStorageFailure& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionFailureEvent_CloudStorageFailure>(&IngestionFailureEvent_CloudStorageFailure_globals_);
  }
  enum ReasonCase {
    kAvroFailureReason = 5,
    kApiViolationReason = 6,
    REASON_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 11;
  friend void swap(IngestionFailureEvent_CloudStorageFailure& a, IngestionFailureEvent_CloudStorageFailure& b) { a.Swap(&b); }
  inline void Swap(IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IngestionFailureEvent_CloudStorageFailure>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IngestionFailureEvent_CloudStorageFailure& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IngestionFailureEvent_CloudStorageFailure& from) { IngestionFailureEvent_CloudStorageFailure::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure"; }

  explicit IngestionFailureEvent_CloudStorageFailure(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionFailureEvent_CloudStorageFailure(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionFailureEvent_CloudStorageFailure& from);
  IngestionFailureEvent_CloudStorageFailure(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionFailureEvent_CloudStorageFailure&& from) noexcept
      : IngestionFailureEvent_CloudStorageFailure(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kBucketFieldNumber = 1,
    kObjectNameFieldNumber = 2,
    kObjectGenerationFieldNumber = 3,
    kAvroFailureReasonFieldNumber = 5,
    kApiViolationReasonFieldNumber = 6,
  };
  // string bucket = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_bucket() ;
  [[nodiscard]] const ::std::string& bucket() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_bucket(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_bucket();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_bucket();
  void set_allocated_bucket(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_bucket() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_bucket(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_bucket();

  public:
  // string object_name = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_object_name() ;
  [[nodiscard]] const ::std::string& object_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_object_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_object_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_object_name();
  void set_allocated_object_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_object_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_object_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_object_name();

  public:
  // int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_object_generation() ;
  [[nodiscard]] ::int64_t object_generation() const;
  void set_object_generation(::int64_t value);

  private:
  ::int64_t _internal_object_generation() const;
  void _internal_set_object_generation(::int64_t value);

  public:
  // .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_avro_failure_reason()
      const;
  private:
  bool _internal_has_avro_failure_reason() const;

  public:
  void clear_avro_failure_reason() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason& avro_failure_reason() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE release_avro_failure_reason();
  ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL mutable_avro_failure_reason();
  void set_allocated_avro_failure_reason(::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_avro_failure_reason(::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE unsafe_arena_release_avro_failure_reason();

  private:
  const ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason& _internal_avro_failure_reason() const;
  ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL _internal_mutable_avro_failure_reason();

  public:
  // .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_api_violation_reason()
      const;
  private:
  bool _internal_has_api_violation_reason() const;

  public:
  void clear_api_violation_reason() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason& api_violation_reason() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE release_api_violation_reason();
  ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL mutable_api_violation_reason();
  void set_allocated_api_violation_reason(::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_api_violation_reason(::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE unsafe_arena_release_api_violation_reason();

  private:
  const ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason& _internal_api_violation_reason() const;
  ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL _internal_mutable_api_violation_reason();

  public:
  void clear_reason();
  ReasonCase reason_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure)
 private:
  class _Internal;
  void set_has_avro_failure_reason();
  void set_has_api_violation_reason();
  [[nodiscard]] inline bool has_reason() const;
  inline void clear_has_reason();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 5,
                          2, 84,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IngestionFailureEvent_CloudStorageFailure& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr bucket_;
    ::google::protobuf::internal::ArenaStringPtr object_name_;
    ::int64_t object_generation_;
    union ReasonUnion {
      constexpr ReasonUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE avro_failure_reason_;
      ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE api_violation_reason_;
    } reason_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionDataSourceSettings_CloudStorage final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage) */ {
 public:
  inline IngestionDataSourceSettings_CloudStorage() : IngestionDataSourceSettings_CloudStorage(nullptr) {}
  ~IngestionDataSourceSettings_CloudStorage() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionDataSourceSettings_CloudStorage));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionDataSourceSettings_CloudStorage(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionDataSourceSettings_CloudStorage(const IngestionDataSourceSettings_CloudStorage& from) : IngestionDataSourceSettings_CloudStorage(nullptr, from) {}
  inline IngestionDataSourceSettings_CloudStorage(IngestionDataSourceSettings_CloudStorage&& from) noexcept : IngestionDataSourceSettings_CloudStorage(nullptr, ::std::move(from)) {}
  inline IngestionDataSourceSettings_CloudStorage& operator=(const IngestionDataSourceSettings_CloudStorage& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionDataSourceSettings_CloudStorage& operator=(IngestionDataSourceSettings_CloudStorage&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionDataSourceSettings_CloudStorage& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionDataSourceSettings_CloudStorage>(&IngestionDataSourceSettings_CloudStorage_globals_);
  }
  enum InputFormatCase {
    kTextFormat = 3,
    kAvroFormat = 4,
    kPubsubAvroFormat = 5,
    INPUT_FORMAT_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(IngestionDataSourceSettings_CloudStorage& a, IngestionDataSourceSettings_CloudStorage& b) { a.Swap(&b); }
  inline void Swap(IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IngestionDataSourceSettings_CloudStorage>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IngestionDataSourceSettings_CloudStorage& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IngestionDataSourceSettings_CloudStorage& from) { IngestionDataSourceSettings_CloudStorage::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage"; }

  explicit IngestionDataSourceSettings_CloudStorage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionDataSourceSettings_CloudStorage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionDataSourceSettings_CloudStorage& from);
  IngestionDataSourceSettings_CloudStorage(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionDataSourceSettings_CloudStorage&& from) noexcept
      : IngestionDataSourceSettings_CloudStorage(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using TextFormat = IngestionDataSourceSettings_CloudStorage_TextFormat;
  using AvroFormat = IngestionDataSourceSettings_CloudStorage_AvroFormat;
  using PubSubAvroFormat = IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat;
  using State = IngestionDataSourceSettings_CloudStorage_State;
  static constexpr State STATE_UNSPECIFIED = IngestionDataSourceSettings_CloudStorage_State_STATE_UNSPECIFIED;
  static constexpr State ACTIVE = IngestionDataSourceSettings_CloudStorage_State_ACTIVE;
  static constexpr State CLOUD_STORAGE_PERMISSION_DENIED = IngestionDataSourceSettings_CloudStorage_State_CLOUD_STORAGE_PERMISSION_DENIED;
  static constexpr State PUBLISH_PERMISSION_DENIED = IngestionDataSourceSettings_CloudStorage_State_PUBLISH_PERMISSION_DENIED;
  static constexpr State BUCKET_NOT_FOUND = IngestionDataSourceSettings_CloudStorage_State_BUCKET_NOT_FOUND;
  static constexpr State TOO_MANY_OBJECTS = IngestionDataSourceSettings_CloudStorage_State_TOO_MANY_OBJECTS;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return IngestionDataSourceSettings_CloudStorage_State_IsValid(value);
  }
  static constexpr State State_MIN = IngestionDataSourceSettings_CloudStorage_State_State_MIN;
  static constexpr State State_MAX = IngestionDataSourceSettings_CloudStorage_State_State_MAX;
  static constexpr int State_ARRAYSIZE = IngestionDataSourceSettings_CloudStorage_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return IngestionDataSourceSettings_CloudStorage_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return IngestionDataSourceSettings_CloudStorage_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return IngestionDataSourceSettings_CloudStorage_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kBucketFieldNumber = 2,
    kMatchGlobFieldNumber = 9,
    kMinimumObjectCreateTimeFieldNumber = 6,
    kStateFieldNumber = 1,
    kTextFormatFieldNumber = 3,
    kAvroFormatFieldNumber = 4,
    kPubsubAvroFormatFieldNumber = 5,
  };
  // string bucket = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_bucket() ;
  [[nodiscard]] const ::std::string& bucket() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_bucket(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_bucket();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_bucket();
  void set_allocated_bucket(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_bucket() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_bucket(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_bucket();

  public:
  // string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL];
  void clear_match_glob() ;
  [[nodiscard]] const ::std::string& match_glob() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_match_glob(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_match_glob();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_match_glob();
  void set_allocated_match_glob(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_match_glob() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_match_glob(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_match_glob();

  public:
  // .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_minimum_object_create_time()
      const;
  void clear_minimum_object_create_time() ;
  [[nodiscard]] const ::google::protobuf::Timestamp& minimum_object_create_time() const;
  [[nodiscard]] ::google::protobuf::Timestamp* PROTOBUF_NULLABLE release_minimum_object_create_time();
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL mutable_minimum_object_create_time();
  void set_allocated_minimum_object_create_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_minimum_object_create_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value);
  ::google::protobuf::Timestamp* PROTOBUF_NULLABLE unsafe_arena_release_minimum_object_create_time();

  private:
  const ::google::protobuf::Timestamp& _internal_minimum_object_create_time() const;
  ::google::protobuf::Timestamp* PROTOBUF_NONNULL _internal_mutable_minimum_object_create_time();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
  void clear_state() ;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State state() const;
  void set_state(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State value);

  private:
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State _internal_state() const;
  void _internal_set_state(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State value);

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_text_format()
      const;
  private:
  bool _internal_has_text_format() const;

  public:
  void clear_text_format() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat& text_format() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE release_text_format();
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL mutable_text_format();
  void set_allocated_text_format(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_text_format(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE unsafe_arena_release_text_format();

  private:
  const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat& _internal_text_format() const;
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL _internal_mutable_text_format();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_avro_format()
      const;
  private:
  bool _internal_has_avro_format() const;

  public:
  void clear_avro_format() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat& avro_format() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE release_avro_format();
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL mutable_avro_format();
  void set_allocated_avro_format(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_avro_format(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE unsafe_arena_release_avro_format();

  private:
  const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat& _internal_avro_format() const;
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL _internal_mutable_avro_format();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_pubsub_avro_format()
      const;
  private:
  bool _internal_has_pubsub_avro_format() const;

  public:
  void clear_pubsub_avro_format() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& pubsub_avro_format() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE release_pubsub_avro_format();
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL mutable_pubsub_avro_format();
  void set_allocated_pubsub_avro_format(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_pubsub_avro_format(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE unsafe_arena_release_pubsub_avro_format();

  private:
  const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& _internal_pubsub_avro_format() const;
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL _internal_mutable_pubsub_avro_format();

  public:
  void clear_input_format();
  InputFormatCase input_format_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage)
 private:
  class _Internal;
  void set_has_text_format();
  void set_has_avro_format();
  void set_has_pubsub_avro_format();
  [[nodiscard]] inline bool has_input_format() const;
  inline void clear_has_input_format();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 7,
                          4, 82,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IngestionDataSourceSettings_CloudStorage& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr bucket_;
    ::google::protobuf::internal::ArenaStringPtr match_glob_;
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE minimum_object_create_time_;
    int state_;
    union InputFormatUnion {
      constexpr InputFormatUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::protobuf::Message* PROTOBUF_NULLABLE text_format_;
      ::google::protobuf::Message* PROTOBUF_NULLABLE avro_format_;
      ::google::protobuf::Message* PROTOBUF_NULLABLE pubsub_avro_format_;
    } input_format_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ExpirationPolicy final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ExpirationPolicy) */ {
 public:
  inline ExpirationPolicy() : ExpirationPolicy(nullptr) {}
  ~ExpirationPolicy() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ExpirationPolicy* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ExpirationPolicy));
  }
#endif

  template <typename = void>
  explicit constexpr ExpirationPolicy(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ExpirationPolicy(const ExpirationPolicy& from) : ExpirationPolicy(nullptr, from) {}
  inline ExpirationPolicy(ExpirationPolicy&& from) noexcept : ExpirationPolicy(nullptr, ::std::move(from)) {}
  inline ExpirationPolicy& operator=(const ExpirationPolicy& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExpirationPolicy& operator=(ExpirationPolicy&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ExpirationPolicy& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ExpirationPolicy>(&ExpirationPolicy_globals_);
  }
  static constexpr int kIndexInFileMessages = 35;
  friend void swap(ExpirationPolicy& a, ExpirationPolicy& b) { a.Swap(&b); }
  inline void Swap(ExpirationPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExpirationPolicy* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ExpirationPolicy* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ExpirationPolicy>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ExpirationPolicy& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ExpirationPolicy& from) { ExpirationPolicy::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ExpirationPolicy* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ExpirationPolicy"; }

  explicit ExpirationPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ExpirationPolicy(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ExpirationPolicy& from);
  ExpirationPolicy(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ExpirationPolicy&& from) noexcept
      : ExpirationPolicy(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTtlFieldNumber = 1,
  };
  // .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_ttl()
      const;
  void clear_ttl() ;
  [[nodiscard]] const ::google::protobuf::Duration& ttl() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_ttl();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_ttl();
  void set_allocated_ttl(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ttl(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_ttl();

  private:
  const ::google::protobuf::Duration& _internal_ttl() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_ttl();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ExpirationPolicy)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ExpirationPolicy& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE ttl_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CreateSnapshotRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.CreateSnapshotRequest) */ {
 public:
  inline CreateSnapshotRequest() : CreateSnapshotRequest(nullptr) {}
  ~CreateSnapshotRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CreateSnapshotRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CreateSnapshotRequest));
  }
#endif

  template <typename = void>
  explicit constexpr CreateSnapshotRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CreateSnapshotRequest(const CreateSnapshotRequest& from) : CreateSnapshotRequest(nullptr, from) {}
  inline CreateSnapshotRequest(CreateSnapshotRequest&& from) noexcept : CreateSnapshotRequest(nullptr, ::std::move(from)) {}
  inline CreateSnapshotRequest& operator=(const CreateSnapshotRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline CreateSnapshotRequest& operator=(CreateSnapshotRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CreateSnapshotRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CreateSnapshotRequest>(&CreateSnapshotRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 62;
  friend void swap(CreateSnapshotRequest& a, CreateSnapshotRequest& b) { a.Swap(&b); }
  inline void Swap(CreateSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CreateSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] CreateSnapshotRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CreateSnapshotRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CreateSnapshotRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CreateSnapshotRequest& from) { CreateSnapshotRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CreateSnapshotRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.CreateSnapshotRequest"; }

  explicit CreateSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CreateSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CreateSnapshotRequest& from);
  CreateSnapshotRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CreateSnapshotRequest&& from) noexcept
      : CreateSnapshotRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kSubscriptionFieldNumber = 2,
    kLabelsFieldNumber = 3,
  };
  // string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string subscription = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int labels_size()
      const;
  private:
  int _internal_labels_size() const;

  public:
  void clear_labels() ;
  [[nodiscard]] const ::google::protobuf::Map<::std::string, ::std::string>& labels() const;
  [[nodiscard]] ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL mutable_labels();

  private:
  const ::google::protobuf::Map<::std::string, ::std::string>& _internal_labels() const;
  ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL _internal_mutable_labels();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.CreateSnapshotRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 3,
                          1, 69,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CreateSnapshotRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    ::google::protobuf::internal::MapField<CreateSnapshotRequest_LabelsEntry_DoNotUse, ::std::string, ::std::string> labels_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED CloudStorageConfig final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.CloudStorageConfig) */ {
 public:
  inline CloudStorageConfig() : CloudStorageConfig(nullptr) {}
  ~CloudStorageConfig() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(CloudStorageConfig* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(CloudStorageConfig));
  }
#endif

  template <typename = void>
  explicit constexpr CloudStorageConfig(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline CloudStorageConfig(const CloudStorageConfig& from) : CloudStorageConfig(nullptr, from) {}
  inline CloudStorageConfig(CloudStorageConfig&& from) noexcept : CloudStorageConfig(nullptr, ::std::move(from)) {}
  inline CloudStorageConfig& operator=(const CloudStorageConfig& from) {
    CopyFrom(from);
    return *this;
  }
  inline CloudStorageConfig& operator=(CloudStorageConfig&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const CloudStorageConfig& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<CloudStorageConfig>(&CloudStorageConfig_globals_);
  }
  enum OutputFormatCase {
    kTextConfig = 4,
    kAvroConfig = 5,
    OUTPUT_FORMAT_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 44;
  friend void swap(CloudStorageConfig& a, CloudStorageConfig& b) { a.Swap(&b); }
  inline void Swap(CloudStorageConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CloudStorageConfig* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] CloudStorageConfig* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<CloudStorageConfig>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const CloudStorageConfig& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const CloudStorageConfig& from) { CloudStorageConfig::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(CloudStorageConfig* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.CloudStorageConfig"; }

  explicit CloudStorageConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  CloudStorageConfig(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const CloudStorageConfig& from);
  CloudStorageConfig(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, CloudStorageConfig&& from) noexcept
      : CloudStorageConfig(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using TextConfig = CloudStorageConfig_TextConfig;
  using AvroConfig = CloudStorageConfig_AvroConfig;
  using State = CloudStorageConfig_State;
  static constexpr State STATE_UNSPECIFIED = CloudStorageConfig_State_STATE_UNSPECIFIED;
  static constexpr State ACTIVE = CloudStorageConfig_State_ACTIVE;
  static constexpr State PERMISSION_DENIED = CloudStorageConfig_State_PERMISSION_DENIED;
  static constexpr State NOT_FOUND = CloudStorageConfig_State_NOT_FOUND;
  static constexpr State IN_TRANSIT_LOCATION_RESTRICTION = CloudStorageConfig_State_IN_TRANSIT_LOCATION_RESTRICTION;
  static constexpr State SCHEMA_MISMATCH = CloudStorageConfig_State_SCHEMA_MISMATCH;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return CloudStorageConfig_State_IsValid(value);
  }
  static constexpr State State_MIN = CloudStorageConfig_State_State_MIN;
  static constexpr State State_MAX = CloudStorageConfig_State_State_MAX;
  static constexpr int State_ARRAYSIZE = CloudStorageConfig_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return CloudStorageConfig_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return CloudStorageConfig_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return CloudStorageConfig_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kBucketFieldNumber = 1,
    kFilenamePrefixFieldNumber = 2,
    kFilenameSuffixFieldNumber = 3,
    kFilenameDatetimeFormatFieldNumber = 10,
    kServiceAccountEmailFieldNumber = 11,
    kMaxDurationFieldNumber = 6,
    kMaxBytesFieldNumber = 7,
    kMaxMessagesFieldNumber = 8,
    kStateFieldNumber = 9,
    kTextConfigFieldNumber = 4,
    kAvroConfigFieldNumber = 5,
  };
  // string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_bucket() ;
  [[nodiscard]] const ::std::string& bucket() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_bucket(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_bucket();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_bucket();
  void set_allocated_bucket(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_bucket() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_bucket(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_bucket();

  public:
  // string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_filename_prefix() ;
  [[nodiscard]] const ::std::string& filename_prefix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_filename_prefix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_filename_prefix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_filename_prefix();
  void set_allocated_filename_prefix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_filename_prefix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_filename_prefix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_filename_prefix();

  public:
  // string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_filename_suffix() ;
  [[nodiscard]] const ::std::string& filename_suffix() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_filename_suffix(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_filename_suffix();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_filename_suffix();
  void set_allocated_filename_suffix(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_filename_suffix() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_filename_suffix(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_filename_suffix();

  public:
  // string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL];
  void clear_filename_datetime_format() ;
  [[nodiscard]] const ::std::string& filename_datetime_format() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_filename_datetime_format(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_filename_datetime_format();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_filename_datetime_format();
  void set_allocated_filename_datetime_format(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_filename_datetime_format() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_filename_datetime_format(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_filename_datetime_format();

  public:
  // string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL];
  void clear_service_account_email() ;
  [[nodiscard]] const ::std::string& service_account_email() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_service_account_email(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_service_account_email();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_service_account_email();
  void set_allocated_service_account_email(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_service_account_email() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_service_account_email(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_service_account_email();

  public:
  // .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_max_duration()
      const;
  void clear_max_duration() ;
  [[nodiscard]] const ::google::protobuf::Duration& max_duration() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_max_duration();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_max_duration();
  void set_allocated_max_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_max_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_max_duration();

  private:
  const ::google::protobuf::Duration& _internal_max_duration() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_max_duration();

  public:
  // int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL];
  void clear_max_bytes() ;
  [[nodiscard]] ::int64_t max_bytes() const;
  void set_max_bytes(::int64_t value);

  private:
  ::int64_t _internal_max_bytes() const;
  void _internal_set_max_bytes(::int64_t value);

  public:
  // int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL];
  void clear_max_messages() ;
  [[nodiscard]] ::int64_t max_messages() const;
  void set_max_messages(::int64_t value);

  private:
  ::int64_t _internal_max_messages() const;
  void _internal_set_max_messages(::int64_t value);

  public:
  // .google.pubsub.v1.CloudStorageConfig.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
  void clear_state() ;
  [[nodiscard]] ::google::pubsub::v1::CloudStorageConfig_State state() const;
  void set_state(::google::pubsub::v1::CloudStorageConfig_State value);

  private:
  ::google::pubsub::v1::CloudStorageConfig_State _internal_state() const;
  void _internal_set_state(::google::pubsub::v1::CloudStorageConfig_State value);

  public:
  // .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_text_config()
      const;
  private:
  bool _internal_has_text_config() const;

  public:
  void clear_text_config() ;
  [[nodiscard]] const ::google::pubsub::v1::CloudStorageConfig_TextConfig& text_config() const;
  [[nodiscard]] ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE release_text_config();
  ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NONNULL mutable_text_config();
  void set_allocated_text_config(::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_text_config(::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE unsafe_arena_release_text_config();

  private:
  const ::google::pubsub::v1::CloudStorageConfig_TextConfig& _internal_text_config() const;
  ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NONNULL _internal_mutable_text_config();

  public:
  // .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_avro_config()
      const;
  private:
  bool _internal_has_avro_config() const;

  public:
  void clear_avro_config() ;
  [[nodiscard]] const ::google::pubsub::v1::CloudStorageConfig_AvroConfig& avro_config() const;
  [[nodiscard]] ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE release_avro_config();
  ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL mutable_avro_config();
  void set_allocated_avro_config(::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_avro_config(::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE unsafe_arena_release_avro_config();

  private:
  const ::google::pubsub::v1::CloudStorageConfig_AvroConfig& _internal_avro_config() const;
  ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL _internal_mutable_avro_config();

  public:
  void clear_output_format();
  OutputFormatCase output_format_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.CloudStorageConfig)
 private:
  class _Internal;
  void set_has_text_config();
  void set_has_avro_config();
  [[nodiscard]] inline bool has_output_format() const;
  inline void clear_has_output_format();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 11,
                          3, 133,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const CloudStorageConfig& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr bucket_;
    ::google::protobuf::internal::ArenaStringPtr filename_prefix_;
    ::google::protobuf::internal::ArenaStringPtr filename_suffix_;
    ::google::protobuf::internal::ArenaStringPtr filename_datetime_format_;
    ::google::protobuf::internal::ArenaStringPtr service_account_email_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE max_duration_;
    ::int64_t max_bytes_;
    ::int64_t max_messages_;
    int state_;
    union OutputFormatUnion {
      constexpr OutputFormatUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE text_config_;
      ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE avro_config_;
    } output_format_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdateSnapshotRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.UpdateSnapshotRequest) */ {
 public:
  inline UpdateSnapshotRequest() : UpdateSnapshotRequest(nullptr) {}
  ~UpdateSnapshotRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdateSnapshotRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdateSnapshotRequest));
  }
#endif

  template <typename = void>
  explicit constexpr UpdateSnapshotRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdateSnapshotRequest(const UpdateSnapshotRequest& from) : UpdateSnapshotRequest(nullptr, from) {}
  inline UpdateSnapshotRequest(UpdateSnapshotRequest&& from) noexcept : UpdateSnapshotRequest(nullptr, ::std::move(from)) {}
  inline UpdateSnapshotRequest& operator=(const UpdateSnapshotRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateSnapshotRequest& operator=(UpdateSnapshotRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdateSnapshotRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdateSnapshotRequest>(&UpdateSnapshotRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 63;
  friend void swap(UpdateSnapshotRequest& a, UpdateSnapshotRequest& b) { a.Swap(&b); }
  inline void Swap(UpdateSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateSnapshotRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdateSnapshotRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdateSnapshotRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdateSnapshotRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdateSnapshotRequest& from) { UpdateSnapshotRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdateSnapshotRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.UpdateSnapshotRequest"; }

  explicit UpdateSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdateSnapshotRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdateSnapshotRequest& from);
  UpdateSnapshotRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdateSnapshotRequest&& from) noexcept
      : UpdateSnapshotRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSnapshotFieldNumber = 1,
    kUpdateMaskFieldNumber = 2,
  };
  // .google.pubsub.v1.Snapshot snapshot = 1 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_snapshot()
      const;
  void clear_snapshot() ;
  [[nodiscard]] const ::google::pubsub::v1::Snapshot& snapshot() const;
  [[nodiscard]] ::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE release_snapshot();
  ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL mutable_snapshot();
  void set_allocated_snapshot(::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_snapshot(::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE unsafe_arena_release_snapshot();

  private:
  const ::google::pubsub::v1::Snapshot& _internal_snapshot() const;
  ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL _internal_mutable_snapshot();

  public:
  // .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_update_mask()
      const;
  void clear_update_mask() ;
  [[nodiscard]] const ::google::protobuf::FieldMask& update_mask() const;
  [[nodiscard]] ::google::protobuf::FieldMask* PROTOBUF_NULLABLE release_update_mask();
  ::google::protobuf::FieldMask* PROTOBUF_NONNULL mutable_update_mask();
  void set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value);
  ::google::protobuf::FieldMask* PROTOBUF_NULLABLE unsafe_arena_release_update_mask();

  private:
  const ::google::protobuf::FieldMask& _internal_update_mask() const;
  ::google::protobuf::FieldMask* PROTOBUF_NONNULL _internal_mutable_update_mask();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.UpdateSnapshotRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdateSnapshotRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE snapshot_;
    ::google::protobuf::FieldMask* PROTOBUF_NULLABLE update_mask_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Subscription final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.Subscription) */ {
 public:
  inline Subscription() : Subscription(nullptr) {}
  ~Subscription() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Subscription* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Subscription));
  }
#endif

  template <typename = void>
  explicit constexpr Subscription(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Subscription(const Subscription& from) : Subscription(nullptr, from) {}
  inline Subscription(Subscription&& from) noexcept : Subscription(nullptr, ::std::move(from)) {}
  inline Subscription& operator=(const Subscription& from) {
    CopyFrom(from);
    return *this;
  }
  inline Subscription& operator=(Subscription&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Subscription& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Subscription>(&Subscription_globals_);
  }
  static constexpr int kIndexInFileMessages = 32;
  friend void swap(Subscription& a, Subscription& b) { a.Swap(&b); }
  inline void Swap(Subscription* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Subscription* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Subscription* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Subscription>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Subscription& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Subscription& from) { Subscription::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Subscription* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.Subscription"; }

  explicit Subscription(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Subscription(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Subscription& from);
  Subscription(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Subscription&& from) noexcept
      : Subscription(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using AnalyticsHubSubscriptionInfo = Subscription_AnalyticsHubSubscriptionInfo;
  using State = Subscription_State;
  static constexpr State STATE_UNSPECIFIED = Subscription_State_STATE_UNSPECIFIED;
  static constexpr State ACTIVE = Subscription_State_ACTIVE;
  static constexpr State RESOURCE_ERROR = Subscription_State_RESOURCE_ERROR;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return Subscription_State_IsValid(value);
  }
  static constexpr State State_MIN = Subscription_State_State_MIN;
  static constexpr State State_MAX = Subscription_State_State_MAX;
  static constexpr int State_ARRAYSIZE = Subscription_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return Subscription_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return Subscription_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return Subscription_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kTopicFieldNumber = 2,
    kFilterFieldNumber = 12,
    kPushConfigFieldNumber = 4,
    kMessageRetentionDurationFieldNumber = 8,
    kExpirationPolicyFieldNumber = 11,
    kDeadLetterPolicyFieldNumber = 13,
    kRetryPolicyFieldNumber = 14,
    kTopicMessageRetentionDurationFieldNumber = 17,
    kBigqueryConfigFieldNumber = 18,
    kCloudStorageConfigFieldNumber = 22,
    kAnalyticsHubSubscriptionInfoFieldNumber = 23,
    kAckDeadlineSecondsFieldNumber = 5,
    kRetainAckedMessagesFieldNumber = 7,
    kEnableMessageOrderingFieldNumber = 10,
    kDetachedFieldNumber = 15,
    kEnableExactlyOnceDeliveryFieldNumber = 16,
    kStateFieldNumber = 19,
    kLabelsFieldNumber = 9,
  };
  // string name = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // string filter = 12 [(.google.api.field_behavior) = OPTIONAL];
  void clear_filter() ;
  [[nodiscard]] const ::std::string& filter() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_filter(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_filter();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_filter();
  void set_allocated_filter(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_filter() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_filter(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_filter();

  public:
  // .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_push_config()
      const;
  void clear_push_config() ;
  [[nodiscard]] const ::google::pubsub::v1::PushConfig& push_config() const;
  [[nodiscard]] ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE release_push_config();
  ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL mutable_push_config();
  void set_allocated_push_config(::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_push_config(::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE unsafe_arena_release_push_config();

  private:
  const ::google::pubsub::v1::PushConfig& _internal_push_config() const;
  ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL _internal_mutable_push_config();

  public:
  // .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_message_retention_duration()
      const;
  void clear_message_retention_duration() ;
  [[nodiscard]] const ::google::protobuf::Duration& message_retention_duration() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_message_retention_duration();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_message_retention_duration();
  void set_allocated_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_message_retention_duration();

  private:
  const ::google::protobuf::Duration& _internal_message_retention_duration() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_message_retention_duration();

  public:
  // .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_expiration_policy()
      const;
  void clear_expiration_policy() ;
  [[nodiscard]] const ::google::pubsub::v1::ExpirationPolicy& expiration_policy() const;
  [[nodiscard]] ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE release_expiration_policy();
  ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NONNULL mutable_expiration_policy();
  void set_allocated_expiration_policy(::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_expiration_policy(::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE unsafe_arena_release_expiration_policy();

  private:
  const ::google::pubsub::v1::ExpirationPolicy& _internal_expiration_policy() const;
  ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NONNULL _internal_mutable_expiration_policy();

  public:
  // .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_dead_letter_policy()
      const;
  void clear_dead_letter_policy() ;
  [[nodiscard]] const ::google::pubsub::v1::DeadLetterPolicy& dead_letter_policy() const;
  [[nodiscard]] ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE release_dead_letter_policy();
  ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NONNULL mutable_dead_letter_policy();
  void set_allocated_dead_letter_policy(::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_dead_letter_policy(::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE unsafe_arena_release_dead_letter_policy();

  private:
  const ::google::pubsub::v1::DeadLetterPolicy& _internal_dead_letter_policy() const;
  ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NONNULL _internal_mutable_dead_letter_policy();

  public:
  // .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_retry_policy()
      const;
  void clear_retry_policy() ;
  [[nodiscard]] const ::google::pubsub::v1::RetryPolicy& retry_policy() const;
  [[nodiscard]] ::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE release_retry_policy();
  ::google::pubsub::v1::RetryPolicy* PROTOBUF_NONNULL mutable_retry_policy();
  void set_allocated_retry_policy(::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_retry_policy(::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE unsafe_arena_release_retry_policy();

  private:
  const ::google::pubsub::v1::RetryPolicy& _internal_retry_policy() const;
  ::google::pubsub::v1::RetryPolicy* PROTOBUF_NONNULL _internal_mutable_retry_policy();

  public:
  // .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
  [[nodiscard]] bool has_topic_message_retention_duration()
      const;
  void clear_topic_message_retention_duration() ;
  [[nodiscard]] const ::google::protobuf::Duration& topic_message_retention_duration() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_topic_message_retention_duration();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_topic_message_retention_duration();
  void set_allocated_topic_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_topic_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_topic_message_retention_duration();

  private:
  const ::google::protobuf::Duration& _internal_topic_message_retention_duration() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_topic_message_retention_duration();

  public:
  // .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_bigquery_config()
      const;
  void clear_bigquery_config() ;
  [[nodiscard]] const ::google::pubsub::v1::BigQueryConfig& bigquery_config() const;
  [[nodiscard]] ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE release_bigquery_config();
  ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NONNULL mutable_bigquery_config();
  void set_allocated_bigquery_config(::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_bigquery_config(::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE unsafe_arena_release_bigquery_config();

  private:
  const ::google::pubsub::v1::BigQueryConfig& _internal_bigquery_config() const;
  ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NONNULL _internal_mutable_bigquery_config();

  public:
  // .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_cloud_storage_config()
      const;
  void clear_cloud_storage_config() ;
  [[nodiscard]] const ::google::pubsub::v1::CloudStorageConfig& cloud_storage_config() const;
  [[nodiscard]] ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE release_cloud_storage_config();
  ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NONNULL mutable_cloud_storage_config();
  void set_allocated_cloud_storage_config(::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cloud_storage_config(::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE unsafe_arena_release_cloud_storage_config();

  private:
  const ::google::pubsub::v1::CloudStorageConfig& _internal_cloud_storage_config() const;
  ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NONNULL _internal_mutable_cloud_storage_config();

  public:
  // .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
  [[nodiscard]] bool has_analytics_hub_subscription_info()
      const;
  void clear_analytics_hub_subscription_info() ;
  [[nodiscard]] const ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo& analytics_hub_subscription_info() const;
  [[nodiscard]] ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE release_analytics_hub_subscription_info();
  ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL mutable_analytics_hub_subscription_info();
  void set_allocated_analytics_hub_subscription_info(::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_analytics_hub_subscription_info(::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE unsafe_arena_release_analytics_hub_subscription_info();

  private:
  const ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo& _internal_analytics_hub_subscription_info() const;
  ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL _internal_mutable_analytics_hub_subscription_info();

  public:
  // int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL];
  void clear_ack_deadline_seconds() ;
  [[nodiscard]] ::int32_t ack_deadline_seconds() const;
  void set_ack_deadline_seconds(::int32_t value);

  private:
  ::int32_t _internal_ack_deadline_seconds() const;
  void _internal_set_ack_deadline_seconds(::int32_t value);

  public:
  // bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL];
  void clear_retain_acked_messages() ;
  [[nodiscard]] bool retain_acked_messages() const;
  void set_retain_acked_messages(bool value);

  private:
  bool _internal_retain_acked_messages() const;
  void _internal_set_retain_acked_messages(bool value);

  public:
  // bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL];
  void clear_enable_message_ordering() ;
  [[nodiscard]] bool enable_message_ordering() const;
  void set_enable_message_ordering(bool value);

  private:
  bool _internal_enable_message_ordering() const;
  void _internal_set_enable_message_ordering(bool value);

  public:
  // bool detached = 15 [(.google.api.field_behavior) = OPTIONAL];
  void clear_detached() ;
  [[nodiscard]] bool detached() const;
  void set_detached(bool value);

  private:
  bool _internal_detached() const;
  void _internal_set_detached(bool value);

  public:
  // bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL];
  void clear_enable_exactly_once_delivery() ;
  [[nodiscard]] bool enable_exactly_once_delivery() const;
  void set_enable_exactly_once_delivery(bool value);

  private:
  bool _internal_enable_exactly_once_delivery() const;
  void _internal_set_enable_exactly_once_delivery(bool value);

  public:
  // .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];
  void clear_state() ;
  [[nodiscard]] ::google::pubsub::v1::Subscription_State state() const;
  void set_state(::google::pubsub::v1::Subscription_State value);

  private:
  ::google::pubsub::v1::Subscription_State _internal_state() const;
  void _internal_set_state(::google::pubsub::v1::Subscription_State value);

  public:
  // map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int labels_size()
      const;
  private:
  int _internal_labels_size() const;

  public:
  void clear_labels() ;
  [[nodiscard]] const ::google::protobuf::Map<::std::string, ::std::string>& labels() const;
  [[nodiscard]] ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL mutable_labels();

  private:
  const ::google::protobuf::Map<::std::string, ::std::string>& _internal_labels() const;
  ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL _internal_mutable_labels();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.Subscription)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<5, 19,
                          10, 75,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Subscription& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    ::google::protobuf::internal::ArenaStringPtr filter_;
    ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE push_config_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE message_retention_duration_;
    ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE expiration_policy_;
    ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE dead_letter_policy_;
    ::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE retry_policy_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE topic_message_retention_duration_;
    ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE bigquery_config_;
    ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE cloud_storage_config_;
    ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE analytics_hub_subscription_info_;
    ::int32_t ack_deadline_seconds_;
    bool retain_acked_messages_;
    bool enable_message_ordering_;
    bool detached_;
    bool enable_exactly_once_delivery_;
    int state_;
    ::google::protobuf::internal::MapField<Subscription_LabelsEntry_DoNotUse, ::std::string, ::std::string> labels_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ReceivedMessage final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ReceivedMessage) */ {
 public:
  inline ReceivedMessage() : ReceivedMessage(nullptr) {}
  ~ReceivedMessage() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ReceivedMessage* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ReceivedMessage));
  }
#endif

  template <typename = void>
  explicit constexpr ReceivedMessage(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ReceivedMessage(const ReceivedMessage& from) : ReceivedMessage(nullptr, from) {}
  inline ReceivedMessage(ReceivedMessage&& from) noexcept : ReceivedMessage(nullptr, ::std::move(from)) {}
  inline ReceivedMessage& operator=(const ReceivedMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline ReceivedMessage& operator=(ReceivedMessage&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ReceivedMessage& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ReceivedMessage>(&ReceivedMessage_globals_);
  }
  static constexpr int kIndexInFileMessages = 45;
  friend void swap(ReceivedMessage& a, ReceivedMessage& b) { a.Swap(&b); }
  inline void Swap(ReceivedMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ReceivedMessage* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ReceivedMessage* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ReceivedMessage>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ReceivedMessage& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ReceivedMessage& from) { ReceivedMessage::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ReceivedMessage* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ReceivedMessage"; }

  explicit ReceivedMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ReceivedMessage(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ReceivedMessage& from);
  ReceivedMessage(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ReceivedMessage&& from) noexcept
      : ReceivedMessage(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kAckIdFieldNumber = 1,
    kMessageFieldNumber = 2,
    kDeliveryAttemptFieldNumber = 3,
  };
  // string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL];
  void clear_ack_id() ;
  [[nodiscard]] const ::std::string& ack_id() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_ack_id(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_ack_id();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_ack_id();
  void set_allocated_ack_id(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_ack_id() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_ack_id(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_ack_id();

  public:
  // .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_message()
      const;
  void clear_message() ;
  [[nodiscard]] const ::google::pubsub::v1::PubsubMessage& message() const;
  [[nodiscard]] ::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE release_message();
  ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL mutable_message();
  void set_allocated_message(::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_message(::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE unsafe_arena_release_message();

  private:
  const ::google::pubsub::v1::PubsubMessage& _internal_message() const;
  ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL _internal_mutable_message();

  public:
  // int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL];
  void clear_delivery_attempt() ;
  [[nodiscard]] ::int32_t delivery_attempt() const;
  void set_delivery_attempt(::int32_t value);

  private:
  ::int32_t _internal_delivery_attempt() const;
  void _internal_set_delivery_attempt(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ReceivedMessage)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<2, 3,
                          1, 47,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ReceivedMessage& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr ack_id_;
    ::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE message_;
    ::int32_t delivery_attempt_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PublishRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PublishRequest) */ {
 public:
  inline PublishRequest() : PublishRequest(nullptr) {}
  ~PublishRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PublishRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PublishRequest));
  }
#endif

  template <typename = void>
  explicit constexpr PublishRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PublishRequest(const PublishRequest& from) : PublishRequest(nullptr, from) {}
  inline PublishRequest(PublishRequest&& from) noexcept : PublishRequest(nullptr, ::std::move(from)) {}
  inline PublishRequest& operator=(const PublishRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline PublishRequest& operator=(PublishRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PublishRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PublishRequest>(&PublishRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 19;
  friend void swap(PublishRequest& a, PublishRequest& b) { a.Swap(&b); }
  inline void Swap(PublishRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PublishRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PublishRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PublishRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PublishRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PublishRequest& from) { PublishRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PublishRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PublishRequest"; }

  explicit PublishRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PublishRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PublishRequest& from);
  PublishRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PublishRequest&& from) noexcept
      : PublishRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kMessagesFieldNumber = 2,
    kTopicFieldNumber = 1,
  };
  // repeated .google.pubsub.v1.PubsubMessage messages = 2 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] int messages_size()
      const;
  private:
  int _internal_messages_size() const;

  public:
  void clear_messages() ;
  [[nodiscard]] const ::google::pubsub::v1::PubsubMessage& messages(int index) const;
  [[nodiscard]] ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL mutable_messages(int index);
  ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL add_messages();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>&
  messages() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>* PROTOBUF_NONNULL
  mutable_messages();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>& _internal_messages() const;
  ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>* PROTOBUF_NONNULL _internal_mutable_messages();

  public:
  // string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PublishRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 45,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PublishRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::pubsub::v1::PubsubMessage > messages_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ModifyPushConfigRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ModifyPushConfigRequest) */ {
 public:
  inline ModifyPushConfigRequest() : ModifyPushConfigRequest(nullptr) {}
  ~ModifyPushConfigRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ModifyPushConfigRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ModifyPushConfigRequest));
  }
#endif

  template <typename = void>
  explicit constexpr ModifyPushConfigRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ModifyPushConfigRequest(const ModifyPushConfigRequest& from) : ModifyPushConfigRequest(nullptr, from) {}
  inline ModifyPushConfigRequest(ModifyPushConfigRequest&& from) noexcept : ModifyPushConfigRequest(nullptr, ::std::move(from)) {}
  inline ModifyPushConfigRequest& operator=(const ModifyPushConfigRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline ModifyPushConfigRequest& operator=(ModifyPushConfigRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ModifyPushConfigRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ModifyPushConfigRequest>(&ModifyPushConfigRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 51;
  friend void swap(ModifyPushConfigRequest& a, ModifyPushConfigRequest& b) { a.Swap(&b); }
  inline void Swap(ModifyPushConfigRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ModifyPushConfigRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ModifyPushConfigRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ModifyPushConfigRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ModifyPushConfigRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ModifyPushConfigRequest& from) { ModifyPushConfigRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ModifyPushConfigRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ModifyPushConfigRequest"; }

  explicit ModifyPushConfigRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ModifyPushConfigRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ModifyPushConfigRequest& from);
  ModifyPushConfigRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ModifyPushConfigRequest&& from) noexcept
      : ModifyPushConfigRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
    kPushConfigFieldNumber = 2,
  };
  // string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
  void clear_subscription() ;
  [[nodiscard]] const ::std::string& subscription() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_subscription(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_subscription();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_subscription();
  void set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_subscription() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_subscription(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // .google.pubsub.v1.PushConfig push_config = 2 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_push_config()
      const;
  void clear_push_config() ;
  [[nodiscard]] const ::google::pubsub::v1::PushConfig& push_config() const;
  [[nodiscard]] ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE release_push_config();
  ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL mutable_push_config();
  void set_allocated_push_config(::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_push_config(::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE unsafe_arena_release_push_config();

  private:
  const ::google::pubsub::v1::PushConfig& _internal_push_config() const;
  ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL _internal_mutable_push_config();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ModifyPushConfigRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 61,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ModifyPushConfigRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr subscription_;
    ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE push_config_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListSnapshotsResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListSnapshotsResponse) */ {
 public:
  inline ListSnapshotsResponse() : ListSnapshotsResponse(nullptr) {}
  ~ListSnapshotsResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListSnapshotsResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListSnapshotsResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListSnapshotsResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListSnapshotsResponse(const ListSnapshotsResponse& from) : ListSnapshotsResponse(nullptr, from) {}
  inline ListSnapshotsResponse(ListSnapshotsResponse&& from) noexcept : ListSnapshotsResponse(nullptr, ::std::move(from)) {}
  inline ListSnapshotsResponse& operator=(const ListSnapshotsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListSnapshotsResponse& operator=(ListSnapshotsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListSnapshotsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListSnapshotsResponse>(&ListSnapshotsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 68;
  friend void swap(ListSnapshotsResponse& a, ListSnapshotsResponse& b) { a.Swap(&b); }
  inline void Swap(ListSnapshotsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListSnapshotsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListSnapshotsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListSnapshotsResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListSnapshotsResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListSnapshotsResponse& from) { ListSnapshotsResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListSnapshotsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListSnapshotsResponse"; }

  explicit ListSnapshotsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListSnapshotsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListSnapshotsResponse& from);
  ListSnapshotsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListSnapshotsResponse&& from) noexcept
      : ListSnapshotsResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSnapshotsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int snapshots_size()
      const;
  private:
  int _internal_snapshots_size() const;

  public:
  void clear_snapshots() ;
  [[nodiscard]] const ::google::pubsub::v1::Snapshot& snapshots(int index) const;
  [[nodiscard]] ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL mutable_snapshots(int index);
  ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL add_snapshots();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>&
  snapshots() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>* PROTOBUF_NONNULL
  mutable_snapshots();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>& _internal_snapshots() const;
  ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>* PROTOBUF_NONNULL _internal_mutable_snapshots();

  public:
  // string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_next_page_token() ;
  [[nodiscard]] const ::std::string& next_page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_next_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_next_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_next_page_token();
  void set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_next_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_next_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_next_page_token();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListSnapshotsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 62,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListSnapshotsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::pubsub::v1::Snapshot > snapshots_;
    ::google::protobuf::internal::ArenaStringPtr next_page_token_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionFailureEvent final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionFailureEvent) */ {
 public:
  inline IngestionFailureEvent() : IngestionFailureEvent(nullptr) {}
  ~IngestionFailureEvent() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionFailureEvent* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionFailureEvent));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionFailureEvent(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionFailureEvent(const IngestionFailureEvent& from) : IngestionFailureEvent(nullptr, from) {}
  inline IngestionFailureEvent(IngestionFailureEvent&& from) noexcept : IngestionFailureEvent(nullptr, ::std::move(from)) {}
  inline IngestionFailureEvent& operator=(const IngestionFailureEvent& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionFailureEvent& operator=(IngestionFailureEvent&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionFailureEvent& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionFailureEvent>(&IngestionFailureEvent_globals_);
  }
  enum FailureCase {
    kCloudStorageFailure = 3,
    FAILURE_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(IngestionFailureEvent& a, IngestionFailureEvent& b) { a.Swap(&b); }
  inline void Swap(IngestionFailureEvent* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionFailureEvent* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionFailureEvent* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IngestionFailureEvent>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IngestionFailureEvent& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IngestionFailureEvent& from) { IngestionFailureEvent::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IngestionFailureEvent* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionFailureEvent"; }

  explicit IngestionFailureEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionFailureEvent(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionFailureEvent& from);
  IngestionFailureEvent(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionFailureEvent&& from) noexcept
      : IngestionFailureEvent(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using ApiViolationReason = IngestionFailureEvent_ApiViolationReason;
  using AvroFailureReason = IngestionFailureEvent_AvroFailureReason;
  using CloudStorageFailure = IngestionFailureEvent_CloudStorageFailure;

  // accessors -------------------------------------------------------
  enum : int {
    kTopicFieldNumber = 1,
    kErrorMessageFieldNumber = 2,
    kCloudStorageFailureFieldNumber = 3,
  };
  // string topic = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_topic() ;
  [[nodiscard]] const ::std::string& topic() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_topic(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_topic();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_topic();
  void set_allocated_topic(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_topic() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_topic(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // string error_message = 2 [(.google.api.field_behavior) = REQUIRED];
  void clear_error_message() ;
  [[nodiscard]] const ::std::string& error_message() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_error_message(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_error_message();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_error_message();
  void set_allocated_error_message(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_error_message() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_error_message(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_error_message();

  public:
  // .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_cloud_storage_failure()
      const;
  private:
  bool _internal_has_cloud_storage_failure() const;

  public:
  void clear_cloud_storage_failure() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure& cloud_storage_failure() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE release_cloud_storage_failure();
  ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL mutable_cloud_storage_failure();
  void set_allocated_cloud_storage_failure(::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cloud_storage_failure(::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE unsafe_arena_release_cloud_storage_failure();

  private:
  const ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure& _internal_cloud_storage_failure() const;
  ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL _internal_mutable_cloud_storage_failure();

  public:
  void clear_failure();
  FailureCase failure_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionFailureEvent)
 private:
  class _Internal;
  void set_has_cloud_storage_failure();
  [[nodiscard]] inline bool has_failure() const;
  inline void clear_has_failure();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 3,
                          1, 65,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IngestionFailureEvent& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr topic_;
    ::google::protobuf::internal::ArenaStringPtr error_message_;
    union FailureUnion {
      constexpr FailureUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE cloud_storage_failure_;
    } failure_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED IngestionDataSourceSettings final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.IngestionDataSourceSettings) */ {
 public:
  inline IngestionDataSourceSettings() : IngestionDataSourceSettings(nullptr) {}
  ~IngestionDataSourceSettings() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(IngestionDataSourceSettings* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(IngestionDataSourceSettings));
  }
#endif

  template <typename = void>
  explicit constexpr IngestionDataSourceSettings(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline IngestionDataSourceSettings(const IngestionDataSourceSettings& from) : IngestionDataSourceSettings(nullptr, from) {}
  inline IngestionDataSourceSettings(IngestionDataSourceSettings&& from) noexcept : IngestionDataSourceSettings(nullptr, ::std::move(from)) {}
  inline IngestionDataSourceSettings& operator=(const IngestionDataSourceSettings& from) {
    CopyFrom(from);
    return *this;
  }
  inline IngestionDataSourceSettings& operator=(IngestionDataSourceSettings&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const IngestionDataSourceSettings& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<IngestionDataSourceSettings>(&IngestionDataSourceSettings_globals_);
  }
  enum SourceCase {
    kAwsKinesis = 1,
    kCloudStorage = 2,
    SOURCE_NOT_SET = 0,
  };
  static constexpr int kIndexInFileMessages = 7;
  friend void swap(IngestionDataSourceSettings& a, IngestionDataSourceSettings& b) { a.Swap(&b); }
  inline void Swap(IngestionDataSourceSettings* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(IngestionDataSourceSettings* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] IngestionDataSourceSettings* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<IngestionDataSourceSettings>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const IngestionDataSourceSettings& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const IngestionDataSourceSettings& from) { IngestionDataSourceSettings::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(IngestionDataSourceSettings* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.IngestionDataSourceSettings"; }

  explicit IngestionDataSourceSettings(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  IngestionDataSourceSettings(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const IngestionDataSourceSettings& from);
  IngestionDataSourceSettings(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, IngestionDataSourceSettings&& from) noexcept
      : IngestionDataSourceSettings(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using AwsKinesis = IngestionDataSourceSettings_AwsKinesis;
  using CloudStorage = IngestionDataSourceSettings_CloudStorage;

  // accessors -------------------------------------------------------
  enum : int {
    kPlatformLogsSettingsFieldNumber = 4,
    kAwsKinesisFieldNumber = 1,
    kCloudStorageFieldNumber = 2,
  };
  // .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_platform_logs_settings()
      const;
  void clear_platform_logs_settings() ;
  [[nodiscard]] const ::google::pubsub::v1::PlatformLogsSettings& platform_logs_settings() const;
  [[nodiscard]] ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE release_platform_logs_settings();
  ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NONNULL mutable_platform_logs_settings();
  void set_allocated_platform_logs_settings(::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_platform_logs_settings(::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE unsafe_arena_release_platform_logs_settings();

  private:
  const ::google::pubsub::v1::PlatformLogsSettings& _internal_platform_logs_settings() const;
  ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NONNULL _internal_mutable_platform_logs_settings();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_aws_kinesis()
      const;
  private:
  bool _internal_has_aws_kinesis() const;

  public:
  void clear_aws_kinesis() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis& aws_kinesis() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE release_aws_kinesis();
  ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL mutable_aws_kinesis();
  void set_allocated_aws_kinesis(::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_aws_kinesis(::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE unsafe_arena_release_aws_kinesis();

  private:
  const ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis& _internal_aws_kinesis() const;
  ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL _internal_mutable_aws_kinesis();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_cloud_storage()
      const;
  private:
  bool _internal_has_cloud_storage() const;

  public:
  void clear_cloud_storage() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage& cloud_storage() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE release_cloud_storage();
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL mutable_cloud_storage();
  void set_allocated_cloud_storage(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_cloud_storage(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE unsafe_arena_release_cloud_storage();

  private:
  const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage& _internal_cloud_storage() const;
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL _internal_mutable_cloud_storage();

  public:
  void clear_source();
  SourceCase source_case() const;
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.IngestionDataSourceSettings)
 private:
  class _Internal;
  void set_has_aws_kinesis();
  void set_has_cloud_storage();
  [[nodiscard]] inline bool has_source() const;
  inline void clear_has_source();
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 3,
                          3, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const IngestionDataSourceSettings& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE platform_logs_settings_;
    union SourceUnion {
      constexpr SourceUnion() : _constinit_{} {}
      ::google::protobuf::internal::ConstantInitialized _constinit_;
      ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE aws_kinesis_;
      ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE cloud_storage_;
    } source_;
    ::uint32_t _oneof_case_[1];
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdateSubscriptionRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.UpdateSubscriptionRequest) */ {
 public:
  inline UpdateSubscriptionRequest() : UpdateSubscriptionRequest(nullptr) {}
  ~UpdateSubscriptionRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdateSubscriptionRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdateSubscriptionRequest));
  }
#endif

  template <typename = void>
  explicit constexpr UpdateSubscriptionRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdateSubscriptionRequest(const UpdateSubscriptionRequest& from) : UpdateSubscriptionRequest(nullptr, from) {}
  inline UpdateSubscriptionRequest(UpdateSubscriptionRequest&& from) noexcept : UpdateSubscriptionRequest(nullptr, ::std::move(from)) {}
  inline UpdateSubscriptionRequest& operator=(const UpdateSubscriptionRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateSubscriptionRequest& operator=(UpdateSubscriptionRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdateSubscriptionRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdateSubscriptionRequest>(&UpdateSubscriptionRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 47;
  friend void swap(UpdateSubscriptionRequest& a, UpdateSubscriptionRequest& b) { a.Swap(&b); }
  inline void Swap(UpdateSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateSubscriptionRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdateSubscriptionRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdateSubscriptionRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdateSubscriptionRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdateSubscriptionRequest& from) { UpdateSubscriptionRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdateSubscriptionRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.UpdateSubscriptionRequest"; }

  explicit UpdateSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdateSubscriptionRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdateSubscriptionRequest& from);
  UpdateSubscriptionRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdateSubscriptionRequest&& from) noexcept
      : UpdateSubscriptionRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionFieldNumber = 1,
    kUpdateMaskFieldNumber = 2,
  };
  // .google.pubsub.v1.Subscription subscription = 1 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_subscription()
      const;
  void clear_subscription() ;
  [[nodiscard]] const ::google::pubsub::v1::Subscription& subscription() const;
  [[nodiscard]] ::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE release_subscription();
  ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL mutable_subscription();
  void set_allocated_subscription(::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_subscription(::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE unsafe_arena_release_subscription();

  private:
  const ::google::pubsub::v1::Subscription& _internal_subscription() const;
  ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL _internal_mutable_subscription();

  public:
  // .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_update_mask()
      const;
  void clear_update_mask() ;
  [[nodiscard]] const ::google::protobuf::FieldMask& update_mask() const;
  [[nodiscard]] ::google::protobuf::FieldMask* PROTOBUF_NULLABLE release_update_mask();
  ::google::protobuf::FieldMask* PROTOBUF_NONNULL mutable_update_mask();
  void set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value);
  ::google::protobuf::FieldMask* PROTOBUF_NULLABLE unsafe_arena_release_update_mask();

  private:
  const ::google::protobuf::FieldMask& _internal_update_mask() const;
  ::google::protobuf::FieldMask* PROTOBUF_NONNULL _internal_mutable_update_mask();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.UpdateSubscriptionRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdateSubscriptionRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE subscription_;
    ::google::protobuf::FieldMask* PROTOBUF_NULLABLE update_mask_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED Topic final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.Topic) */ {
 public:
  inline Topic() : Topic(nullptr) {}
  ~Topic() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(Topic* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(Topic));
  }
#endif

  template <typename = void>
  explicit constexpr Topic(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline Topic(const Topic& from) : Topic(nullptr, from) {}
  inline Topic(Topic&& from) noexcept : Topic(nullptr, ::std::move(from)) {}
  inline Topic& operator=(const Topic& from) {
    CopyFrom(from);
    return *this;
  }
  inline Topic& operator=(Topic&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const Topic& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<Topic>(&Topic_globals_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(Topic& a, Topic& b) { a.Swap(&b); }
  inline void Swap(Topic* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Topic* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] Topic* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<Topic>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Topic& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Topic& from) { Topic::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(Topic* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.Topic"; }

  explicit Topic(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  Topic(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Topic& from);
  Topic(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, Topic&& from) noexcept
      : Topic(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using State = Topic_State;
  static constexpr State STATE_UNSPECIFIED = Topic_State_STATE_UNSPECIFIED;
  static constexpr State ACTIVE = Topic_State_ACTIVE;
  static constexpr State INGESTION_RESOURCE_ERROR = Topic_State_INGESTION_RESOURCE_ERROR;
  [[nodiscard]] static inline bool State_IsValid(int value) {
    return Topic_State_IsValid(value);
  }
  static constexpr State State_MIN = Topic_State_State_MIN;
  static constexpr State State_MAX = Topic_State_State_MAX;
  static constexpr int State_ARRAYSIZE = Topic_State_State_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL State_descriptor() {
    return Topic_State_descriptor();
  }
  template <typename T>
  [[nodiscard]] static inline const ::std::string& State_Name(T value) {
    return Topic_State_Name(value);
  }
  [[nodiscard]] static inline bool State_Parse(
      ::absl::string_view name, State* PROTOBUF_NONNULL value) {
    return Topic_State_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kKmsKeyNameFieldNumber = 5,
    kMessageStoragePolicyFieldNumber = 3,
    kSchemaSettingsFieldNumber = 6,
    kMessageRetentionDurationFieldNumber = 8,
    kIngestionDataSourceSettingsFieldNumber = 10,
    kSatisfiesPzsFieldNumber = 7,
    kStateFieldNumber = 9,
    kLabelsFieldNumber = 2,
  };
  // string name = 1 [(.google.api.field_behavior) = REQUIRED];
  void clear_name() ;
  [[nodiscard]] const ::std::string& name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_name();
  void set_allocated_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_name();

  public:
  // string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL];
  void clear_kms_key_name() ;
  [[nodiscard]] const ::std::string& kms_key_name() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_kms_key_name(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_kms_key_name();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_kms_key_name();
  void set_allocated_kms_key_name(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_kms_key_name() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_kms_key_name(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_kms_key_name();

  public:
  // .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_message_storage_policy()
      const;
  void clear_message_storage_policy() ;
  [[nodiscard]] const ::google::pubsub::v1::MessageStoragePolicy& message_storage_policy() const;
  [[nodiscard]] ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE release_message_storage_policy();
  ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NONNULL mutable_message_storage_policy();
  void set_allocated_message_storage_policy(::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_message_storage_policy(::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE unsafe_arena_release_message_storage_policy();

  private:
  const ::google::pubsub::v1::MessageStoragePolicy& _internal_message_storage_policy() const;
  ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NONNULL _internal_mutable_message_storage_policy();

  public:
  // .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_schema_settings()
      const;
  void clear_schema_settings() ;
  [[nodiscard]] const ::google::pubsub::v1::SchemaSettings& schema_settings() const;
  [[nodiscard]] ::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE release_schema_settings();
  ::google::pubsub::v1::SchemaSettings* PROTOBUF_NONNULL mutable_schema_settings();
  void set_allocated_schema_settings(::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_schema_settings(::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE unsafe_arena_release_schema_settings();

  private:
  const ::google::pubsub::v1::SchemaSettings& _internal_schema_settings() const;
  ::google::pubsub::v1::SchemaSettings* PROTOBUF_NONNULL _internal_mutable_schema_settings();

  public:
  // .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_message_retention_duration()
      const;
  void clear_message_retention_duration() ;
  [[nodiscard]] const ::google::protobuf::Duration& message_retention_duration() const;
  [[nodiscard]] ::google::protobuf::Duration* PROTOBUF_NULLABLE release_message_retention_duration();
  ::google::protobuf::Duration* PROTOBUF_NONNULL mutable_message_retention_duration();
  void set_allocated_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value);
  ::google::protobuf::Duration* PROTOBUF_NULLABLE unsafe_arena_release_message_retention_duration();

  private:
  const ::google::protobuf::Duration& _internal_message_retention_duration() const;
  ::google::protobuf::Duration* PROTOBUF_NONNULL _internal_mutable_message_retention_duration();

  public:
  // .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_ingestion_data_source_settings()
      const;
  void clear_ingestion_data_source_settings() ;
  [[nodiscard]] const ::google::pubsub::v1::IngestionDataSourceSettings& ingestion_data_source_settings() const;
  [[nodiscard]] ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE release_ingestion_data_source_settings();
  ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NONNULL mutable_ingestion_data_source_settings();
  void set_allocated_ingestion_data_source_settings(::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_ingestion_data_source_settings(::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE unsafe_arena_release_ingestion_data_source_settings();

  private:
  const ::google::pubsub::v1::IngestionDataSourceSettings& _internal_ingestion_data_source_settings() const;
  ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NONNULL _internal_mutable_ingestion_data_source_settings();

  public:
  // bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL];
  void clear_satisfies_pzs() ;
  [[nodiscard]] bool satisfies_pzs() const;
  void set_satisfies_pzs(bool value);

  private:
  bool _internal_satisfies_pzs() const;
  void _internal_set_satisfies_pzs(bool value);

  public:
  // .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
  void clear_state() ;
  [[nodiscard]] ::google::pubsub::v1::Topic_State state() const;
  void set_state(::google::pubsub::v1::Topic_State value);

  private:
  ::google::pubsub::v1::Topic_State _internal_state() const;
  void _internal_set_state(::google::pubsub::v1::Topic_State value);

  public:
  // map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int labels_size()
      const;
  private:
  int _internal_labels_size() const;

  public:
  void clear_labels() ;
  [[nodiscard]] const ::google::protobuf::Map<::std::string, ::std::string>& labels() const;
  [[nodiscard]] ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL mutable_labels();

  private:
  const ::google::protobuf::Map<::std::string, ::std::string>& _internal_labels() const;
  ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL _internal_mutable_labels();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.Topic)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<4, 9,
                          5, 61,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const Topic& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr kms_key_name_;
    ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE message_storage_policy_;
    ::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE schema_settings_;
    ::google::protobuf::Duration* PROTOBUF_NULLABLE message_retention_duration_;
    ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE ingestion_data_source_settings_;
    bool satisfies_pzs_;
    int state_;
    ::google::protobuf::internal::MapField<Topic_LabelsEntry_DoNotUse, ::std::string, ::std::string> labels_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED StreamingPullResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.StreamingPullResponse) */ {
 public:
  inline StreamingPullResponse() : StreamingPullResponse(nullptr) {}
  ~StreamingPullResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(StreamingPullResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(StreamingPullResponse));
  }
#endif

  template <typename = void>
  explicit constexpr StreamingPullResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline StreamingPullResponse(const StreamingPullResponse& from) : StreamingPullResponse(nullptr, from) {}
  inline StreamingPullResponse(StreamingPullResponse&& from) noexcept : StreamingPullResponse(nullptr, ::std::move(from)) {}
  inline StreamingPullResponse& operator=(const StreamingPullResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline StreamingPullResponse& operator=(StreamingPullResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const StreamingPullResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<StreamingPullResponse>(&StreamingPullResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 60;
  friend void swap(StreamingPullResponse& a, StreamingPullResponse& b) { a.Swap(&b); }
  inline void Swap(StreamingPullResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(StreamingPullResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] StreamingPullResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<StreamingPullResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const StreamingPullResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const StreamingPullResponse& from) { StreamingPullResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(StreamingPullResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.StreamingPullResponse"; }

  explicit StreamingPullResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  StreamingPullResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const StreamingPullResponse& from);
  StreamingPullResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, StreamingPullResponse&& from) noexcept
      : StreamingPullResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------
  using AcknowledgeConfirmation = StreamingPullResponse_AcknowledgeConfirmation;
  using ModifyAckDeadlineConfirmation = StreamingPullResponse_ModifyAckDeadlineConfirmation;
  using SubscriptionProperties = StreamingPullResponse_SubscriptionProperties;

  // accessors -------------------------------------------------------
  enum : int {
    kReceivedMessagesFieldNumber = 1,
    kModifyAckDeadlineConfirmationFieldNumber = 3,
    kSubscriptionPropertiesFieldNumber = 4,
    kAcknowledgeConfirmationFieldNumber = 5,
  };
  // repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int received_messages_size()
      const;
  private:
  int _internal_received_messages_size() const;

  public:
  void clear_received_messages() ;
  [[nodiscard]] const ::google::pubsub::v1::ReceivedMessage& received_messages(int index) const;
  [[nodiscard]] ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL mutable_received_messages(int index);
  ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL add_received_messages();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>&
  received_messages() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL
  mutable_received_messages();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>& _internal_received_messages() const;
  ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL _internal_mutable_received_messages();

  public:
  // .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_modify_ack_deadline_confirmation()
      const;
  void clear_modify_ack_deadline_confirmation() ;
  [[nodiscard]] const ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation& modify_ack_deadline_confirmation() const;
  [[nodiscard]] ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE release_modify_ack_deadline_confirmation();
  ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL mutable_modify_ack_deadline_confirmation();
  void set_allocated_modify_ack_deadline_confirmation(::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_modify_ack_deadline_confirmation(::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE unsafe_arena_release_modify_ack_deadline_confirmation();

  private:
  const ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation& _internal_modify_ack_deadline_confirmation() const;
  ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL _internal_mutable_modify_ack_deadline_confirmation();

  public:
  // .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_subscription_properties()
      const;
  void clear_subscription_properties() ;
  [[nodiscard]] const ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties& subscription_properties() const;
  [[nodiscard]] ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE release_subscription_properties();
  ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL mutable_subscription_properties();
  void set_allocated_subscription_properties(::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_subscription_properties(::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE unsafe_arena_release_subscription_properties();

  private:
  const ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties& _internal_subscription_properties() const;
  ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL _internal_mutable_subscription_properties();

  public:
  // .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] bool has_acknowledge_confirmation()
      const;
  void clear_acknowledge_confirmation() ;
  [[nodiscard]] const ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation& acknowledge_confirmation() const;
  [[nodiscard]] ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE release_acknowledge_confirmation();
  ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL mutable_acknowledge_confirmation();
  void set_allocated_acknowledge_confirmation(::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_acknowledge_confirmation(::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE unsafe_arena_release_acknowledge_confirmation();

  private:
  const ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation& _internal_acknowledge_confirmation() const;
  ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL _internal_mutable_acknowledge_confirmation();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.StreamingPullResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<3, 4,
                          4, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const StreamingPullResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::pubsub::v1::ReceivedMessage > received_messages_;
    ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE modify_ack_deadline_confirmation_;
    ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE subscription_properties_;
    ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE acknowledge_confirmation_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED PullResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.PullResponse) */ {
 public:
  inline PullResponse() : PullResponse(nullptr) {}
  ~PullResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(PullResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(PullResponse));
  }
#endif

  template <typename = void>
  explicit constexpr PullResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline PullResponse(const PullResponse& from) : PullResponse(nullptr, from) {}
  inline PullResponse(PullResponse&& from) noexcept : PullResponse(nullptr, ::std::move(from)) {}
  inline PullResponse& operator=(const PullResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline PullResponse& operator=(PullResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const PullResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<PullResponse>(&PullResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 53;
  friend void swap(PullResponse& a, PullResponse& b) { a.Swap(&b); }
  inline void Swap(PullResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(PullResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] PullResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<PullResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const PullResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const PullResponse& from) { PullResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(PullResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.PullResponse"; }

  explicit PullResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  PullResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PullResponse& from);
  PullResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, PullResponse&& from) noexcept
      : PullResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kReceivedMessagesFieldNumber = 1,
  };
  // repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int received_messages_size()
      const;
  private:
  int _internal_received_messages_size() const;

  public:
  void clear_received_messages() ;
  [[nodiscard]] const ::google::pubsub::v1::ReceivedMessage& received_messages(int index) const;
  [[nodiscard]] ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL mutable_received_messages(int index);
  ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL add_received_messages();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>&
  received_messages() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL
  mutable_received_messages();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>& _internal_received_messages() const;
  ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL _internal_mutable_received_messages();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.PullResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<0, 1,
                          1, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const PullResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::pubsub::v1::ReceivedMessage > received_messages_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListSubscriptionsResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListSubscriptionsResponse) */ {
 public:
  inline ListSubscriptionsResponse() : ListSubscriptionsResponse(nullptr) {}
  ~ListSubscriptionsResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListSubscriptionsResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListSubscriptionsResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListSubscriptionsResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListSubscriptionsResponse(const ListSubscriptionsResponse& from) : ListSubscriptionsResponse(nullptr, from) {}
  inline ListSubscriptionsResponse(ListSubscriptionsResponse&& from) noexcept : ListSubscriptionsResponse(nullptr, ::std::move(from)) {}
  inline ListSubscriptionsResponse& operator=(const ListSubscriptionsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListSubscriptionsResponse& operator=(ListSubscriptionsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListSubscriptionsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListSubscriptionsResponse>(&ListSubscriptionsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 49;
  friend void swap(ListSubscriptionsResponse& a, ListSubscriptionsResponse& b) { a.Swap(&b); }
  inline void Swap(ListSubscriptionsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListSubscriptionsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListSubscriptionsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListSubscriptionsResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListSubscriptionsResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListSubscriptionsResponse& from) { ListSubscriptionsResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListSubscriptionsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListSubscriptionsResponse"; }

  explicit ListSubscriptionsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListSubscriptionsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListSubscriptionsResponse& from);
  ListSubscriptionsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListSubscriptionsResponse&& from) noexcept
      : ListSubscriptionsResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSubscriptionsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int subscriptions_size()
      const;
  private:
  int _internal_subscriptions_size() const;

  public:
  void clear_subscriptions() ;
  [[nodiscard]] const ::google::pubsub::v1::Subscription& subscriptions(int index) const;
  [[nodiscard]] ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL mutable_subscriptions(int index);
  ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL add_subscriptions();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>&
  subscriptions() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>* PROTOBUF_NONNULL
  mutable_subscriptions();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>& _internal_subscriptions() const;
  ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>* PROTOBUF_NONNULL _internal_mutable_subscriptions();

  public:
  // string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_next_page_token() ;
  [[nodiscard]] const ::std::string& next_page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_next_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_next_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_next_page_token();
  void set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_next_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_next_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_next_page_token();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListSubscriptionsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 66,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListSubscriptionsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::pubsub::v1::Subscription > subscriptions_;
    ::google::protobuf::internal::ArenaStringPtr next_page_token_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED UpdateTopicRequest final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.UpdateTopicRequest) */ {
 public:
  inline UpdateTopicRequest() : UpdateTopicRequest(nullptr) {}
  ~UpdateTopicRequest() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(UpdateTopicRequest* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(UpdateTopicRequest));
  }
#endif

  template <typename = void>
  explicit constexpr UpdateTopicRequest(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline UpdateTopicRequest(const UpdateTopicRequest& from) : UpdateTopicRequest(nullptr, from) {}
  inline UpdateTopicRequest(UpdateTopicRequest&& from) noexcept : UpdateTopicRequest(nullptr, ::std::move(from)) {}
  inline UpdateTopicRequest& operator=(const UpdateTopicRequest& from) {
    CopyFrom(from);
    return *this;
  }
  inline UpdateTopicRequest& operator=(UpdateTopicRequest&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const UpdateTopicRequest& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<UpdateTopicRequest>(&UpdateTopicRequest_globals_);
  }
  static constexpr int kIndexInFileMessages = 18;
  friend void swap(UpdateTopicRequest& a, UpdateTopicRequest& b) { a.Swap(&b); }
  inline void Swap(UpdateTopicRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(UpdateTopicRequest* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] UpdateTopicRequest* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<UpdateTopicRequest>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const UpdateTopicRequest& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const UpdateTopicRequest& from) { UpdateTopicRequest::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(UpdateTopicRequest* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.UpdateTopicRequest"; }

  explicit UpdateTopicRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  UpdateTopicRequest(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const UpdateTopicRequest& from);
  UpdateTopicRequest(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, UpdateTopicRequest&& from) noexcept
      : UpdateTopicRequest(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTopicFieldNumber = 1,
    kUpdateMaskFieldNumber = 2,
  };
  // .google.pubsub.v1.Topic topic = 1 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_topic()
      const;
  void clear_topic() ;
  [[nodiscard]] const ::google::pubsub::v1::Topic& topic() const;
  [[nodiscard]] ::google::pubsub::v1::Topic* PROTOBUF_NULLABLE release_topic();
  ::google::pubsub::v1::Topic* PROTOBUF_NONNULL mutable_topic();
  void set_allocated_topic(::google::pubsub::v1::Topic* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_topic(::google::pubsub::v1::Topic* PROTOBUF_NULLABLE value);
  ::google::pubsub::v1::Topic* PROTOBUF_NULLABLE unsafe_arena_release_topic();

  private:
  const ::google::pubsub::v1::Topic& _internal_topic() const;
  ::google::pubsub::v1::Topic* PROTOBUF_NONNULL _internal_mutable_topic();

  public:
  // .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
  [[nodiscard]] bool has_update_mask()
      const;
  void clear_update_mask() ;
  [[nodiscard]] const ::google::protobuf::FieldMask& update_mask() const;
  [[nodiscard]] ::google::protobuf::FieldMask* PROTOBUF_NULLABLE release_update_mask();
  ::google::protobuf::FieldMask* PROTOBUF_NONNULL mutable_update_mask();
  void set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value);
  void unsafe_arena_set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value);
  ::google::protobuf::FieldMask* PROTOBUF_NULLABLE unsafe_arena_release_update_mask();

  private:
  const ::google::protobuf::FieldMask& _internal_update_mask() const;
  ::google::protobuf::FieldMask* PROTOBUF_NONNULL _internal_mutable_update_mask();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.UpdateTopicRequest)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          2, 0,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const UpdateTopicRequest& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::pubsub::v1::Topic* PROTOBUF_NULLABLE topic_;
    ::google::protobuf::FieldMask* PROTOBUF_NULLABLE update_mask_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};
// -------------------------------------------------------------------

class  PROTOBUF_FUTURE_ADD_EARLY_WARN_UNUSED ListTopicsResponse final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:google.pubsub.v1.ListTopicsResponse) */ {
 public:
  inline ListTopicsResponse() : ListTopicsResponse(nullptr) {}
  ~ListTopicsResponse() PROTOBUF_FINAL;

#if defined(PROTOBUF_CUSTOM_VTABLE)
  void operator delete(ListTopicsResponse* PROTOBUF_NONNULL msg, ::std::destroying_delete_t) {
    SharedDtor(*msg);
    ::google::protobuf::internal::SizedDelete(msg, sizeof(ListTopicsResponse));
  }
#endif

  template <typename = void>
  explicit constexpr ListTopicsResponse(::google::protobuf::internal::ConstantInitialized,
                           const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
                               class_data);

  inline ListTopicsResponse(const ListTopicsResponse& from) : ListTopicsResponse(nullptr, from) {}
  inline ListTopicsResponse(ListTopicsResponse&& from) noexcept : ListTopicsResponse(nullptr, ::std::move(from)) {}
  inline ListTopicsResponse& operator=(const ListTopicsResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline ListTopicsResponse& operator=(ListTopicsResponse&& from) noexcept {
    if (this == &from) return *this;
    if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  [[nodiscard]] inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  [[nodiscard]] inline ::google::protobuf::UnknownFieldSet* PROTOBUF_NONNULL
  mutable_unknown_fields() ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL descriptor() {
    return GetDescriptor();
  }
  [[nodiscard]] static const ::google::protobuf::Descriptor* PROTOBUF_NONNULL
  GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  [[nodiscard]] static const ::google::protobuf::Reflection* PROTOBUF_NONNULL GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  [[nodiscard]] static const ListTopicsResponse& default_instance() {
    return *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<ListTopicsResponse>(&ListTopicsResponse_globals_);
  }
  static constexpr int kIndexInFileMessages = 22;
  friend void swap(ListTopicsResponse& a, ListTopicsResponse& b) { a.Swap(&b); }
  inline void Swap(ListTopicsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) {
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ListTopicsResponse* PROTOBUF_NONNULL other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

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

  [[nodiscard]] ListTopicsResponse* PROTOBUF_NONNULL
  New(::google::protobuf::Arena* PROTOBUF_NULLABLE arena = nullptr) const {
    return ::google::protobuf::Message::DefaultConstruct<ListTopicsResponse>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ListTopicsResponse& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ListTopicsResponse& from) { ListTopicsResponse::MergeImpl(*this, from); }

  private:
  static void MergeImpl(::google::protobuf::MessageLite& to_msg,
                        const ::google::protobuf::MessageLite& from_msg);

  public:
  [[nodiscard]] bool IsInitialized() const {
    return true;
  }
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL;
  #if defined(PROTOBUF_CUSTOM_VTABLE)
  private:
  [[nodiscard]] static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg);
  [[nodiscard]] static ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      const ::google::protobuf::MessageLite& msg, ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream);

  public:
  [[nodiscard]] ::size_t ByteSizeLong() const { return ByteSizeLong(*this); }
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
    return _InternalSerialize(*this, target, stream);
  }
  #else   // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] ::size_t ByteSizeLong() const final;
  [[nodiscard]] ::uint8_t* PROTOBUF_NONNULL _InternalSerialize(
      ::uint8_t* PROTOBUF_NONNULL target,
      ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const final;
  #endif  // PROTOBUF_CUSTOM_VTABLE
  [[nodiscard]] int GetCachedSize() const {
    return _impl_._cached_size_.Get();
  }

  private:
  void SharedCtor(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static void SharedDtor(MessageLite& self);
  void InternalSwap(ListTopicsResponse* PROTOBUF_NONNULL other);
 private:
  template <typename T>
  friend ::absl::string_view(::google::protobuf::internal::GetAnyMessageName)();
  static ::absl::string_view FullMessageName() { return "google.pubsub.v1.ListTopicsResponse"; }

  explicit ListTopicsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  ListTopicsResponse(::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ListTopicsResponse& from);
  ListTopicsResponse(
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, ListTopicsResponse&& from) noexcept
      : ListTopicsResponse(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL GetClassData() const PROTOBUF_FINAL;
  static void* PROTOBUF_NONNULL PlacementNew_(
      const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
      ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
  static constexpr auto InternalNewImpl_();

 public:
  static constexpr auto InternalGenerateClassData_(
      const MessageLite& prototype,
      const ::google::protobuf::internal::TcParseTableBase* PROTOBUF_NULLABLE tc_table = nullptr);

  [[nodiscard]] ::google::protobuf::Metadata GetMetadata() const;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTopicsFieldNumber = 1,
    kNextPageTokenFieldNumber = 2,
  };
  // repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL];
  [[nodiscard]] int topics_size()
      const;
  private:
  int _internal_topics_size() const;

  public:
  void clear_topics() ;
  [[nodiscard]] const ::google::pubsub::v1::Topic& topics(int index) const;
  [[nodiscard]] ::google::pubsub::v1::Topic* PROTOBUF_NONNULL mutable_topics(int index);
  ::google::pubsub::v1::Topic* PROTOBUF_NONNULL add_topics();
  [[nodiscard]] const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>&
  topics() const;
  [[nodiscard]] ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>* PROTOBUF_NONNULL
  mutable_topics();

  private:
  const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>& _internal_topics() const;
  ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>* PROTOBUF_NONNULL _internal_mutable_topics();

  public:
  // string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
  void clear_next_page_token() ;
  [[nodiscard]] const ::std::string& next_page_token() const;
  template <typename Arg_ = const ::std::string&, typename... Args_>
  void set_next_page_token(Arg_&& arg, Args_... args);
  ::std::string* PROTOBUF_NONNULL mutable_next_page_token();
  [[nodiscard]] ::std::string* PROTOBUF_NULLABLE release_next_page_token();
  void set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value);

  private:
  const ::std::string& _internal_next_page_token() const;
  PROTOBUF_ALWAYS_INLINE void _internal_set_next_page_token(const ::std::string& value);
  ::std::string* PROTOBUF_NONNULL _internal_mutable_next_page_token();

  public:
  // @@protoc_insertion_point(class_scope:google.pubsub.v1.ListTopicsResponse)
 private:
  class _Internal;
  using ParseTableT_ =
      ::google::protobuf::internal::TcParseTable<1, 2,
                          1, 59,
                          2>;
  static constexpr ParseTableT_ InternalGenerateParseTable_(
      const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL class_data);
  friend class ::google::protobuf::internal::TcParser;
  #ifndef PROTOBUF_MESSAGE_GLOBALS
  static const ParseTableT_ _table_;
  #endif

  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  friend ::google::protobuf::internal::PrivateAccess;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(::google::protobuf::internal::InternalVisibility visibility,
                                    ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena);
    inline explicit Impl_(
        ::google::protobuf::internal::InternalVisibility visibility,
        ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
        const ListTopicsResponse& from_msg);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField< ::google::pubsub::v1::Topic > topics_;
    ::google::protobuf::internal::ArenaStringPtr next_page_token_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_google_2fpubsub_2fv1_2fpubsub_2eproto;
};

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




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


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

// MessageStoragePolicy

// repeated string allowed_persistence_regions = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int MessageStoragePolicy::_internal_allowed_persistence_regions_size() const {
  return _internal_allowed_persistence_regions().size();
}
inline int MessageStoragePolicy::allowed_persistence_regions_size() const {
  return _internal_allowed_persistence_regions_size();
}
inline void MessageStoragePolicy::clear_allowed_persistence_regions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.allowed_persistence_regions_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL MessageStoragePolicy::add_allowed_persistence_regions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_allowed_persistence_regions()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
  return _s;
}
inline const ::std::string& MessageStoragePolicy::allowed_persistence_regions(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
  return _internal_allowed_persistence_regions().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL MessageStoragePolicy::mutable_allowed_persistence_regions(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
  return _internal_mutable_allowed_persistence_regions()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void MessageStoragePolicy::set_allowed_persistence_regions(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_allowed_persistence_regions()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
}
template <typename Arg_, typename... Args_>
inline void MessageStoragePolicy::add_allowed_persistence_regions(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_allowed_persistence_regions(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& MessageStoragePolicy::allowed_persistence_regions()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
  return _internal_allowed_persistence_regions();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
MessageStoragePolicy::mutable_allowed_persistence_regions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.MessageStoragePolicy.allowed_persistence_regions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_allowed_persistence_regions();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
MessageStoragePolicy::_internal_allowed_persistence_regions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.allowed_persistence_regions_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
MessageStoragePolicy::_internal_mutable_allowed_persistence_regions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.allowed_persistence_regions_;
}

// bool enforce_in_transit = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void MessageStoragePolicy::clear_enforce_in_transit() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enforce_in_transit_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool MessageStoragePolicy::enforce_in_transit() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.MessageStoragePolicy.enforce_in_transit)
  return _internal_enforce_in_transit();
}
inline void MessageStoragePolicy::set_enforce_in_transit(bool value) {
  _internal_set_enforce_in_transit(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.MessageStoragePolicy.enforce_in_transit)
}
inline bool MessageStoragePolicy::_internal_enforce_in_transit() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enforce_in_transit_;
}
inline void MessageStoragePolicy::_internal_set_enforce_in_transit(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enforce_in_transit_ = value;
}

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

// SchemaSettings

// string schema = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void SchemaSettings::clear_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.schema_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& SchemaSettings::schema() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SchemaSettings.schema)
  return _internal_schema();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SchemaSettings::set_schema(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.schema_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.SchemaSettings.schema)
}
inline ::std::string* PROTOBUF_NONNULL SchemaSettings::mutable_schema()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_schema();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.SchemaSettings.schema)
  return _s;
}
inline const ::std::string& SchemaSettings::_internal_schema() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.schema_.Get();
}
inline void SchemaSettings::_internal_set_schema(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.schema_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SchemaSettings::_internal_mutable_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.schema_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SchemaSettings::release_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.SchemaSettings.schema)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.schema_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.schema_.Set("", GetArena());
  }
  return released;
}
inline void SchemaSettings::set_allocated_schema(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.schema_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.schema_.IsDefault()) {
    _impl_.schema_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.SchemaSettings.schema)
}

// .google.pubsub.v1.Encoding encoding = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void SchemaSettings::clear_encoding() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoding_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::google::pubsub::v1::Encoding SchemaSettings::encoding() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SchemaSettings.encoding)
  return _internal_encoding();
}
inline void SchemaSettings::set_encoding(::google::pubsub::v1::Encoding value) {
  _internal_set_encoding(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.SchemaSettings.encoding)
}
inline ::google::pubsub::v1::Encoding SchemaSettings::_internal_encoding() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::Encoding>(_impl_.encoding_);
}
inline void SchemaSettings::_internal_set_encoding(::google::pubsub::v1::Encoding value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.encoding_ = value;
}

// string first_revision_id = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void SchemaSettings::clear_first_revision_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.first_revision_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& SchemaSettings::first_revision_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SchemaSettings.first_revision_id)
  return _internal_first_revision_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SchemaSettings::set_first_revision_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.first_revision_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.SchemaSettings.first_revision_id)
}
inline ::std::string* PROTOBUF_NONNULL SchemaSettings::mutable_first_revision_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_first_revision_id();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.SchemaSettings.first_revision_id)
  return _s;
}
inline const ::std::string& SchemaSettings::_internal_first_revision_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.first_revision_id_.Get();
}
inline void SchemaSettings::_internal_set_first_revision_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.first_revision_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SchemaSettings::_internal_mutable_first_revision_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.first_revision_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SchemaSettings::release_first_revision_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.SchemaSettings.first_revision_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.first_revision_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.first_revision_id_.Set("", GetArena());
  }
  return released;
}
inline void SchemaSettings::set_allocated_first_revision_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.first_revision_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.first_revision_id_.IsDefault()) {
    _impl_.first_revision_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.SchemaSettings.first_revision_id)
}

// string last_revision_id = 4 [(.google.api.field_behavior) = OPTIONAL];
inline void SchemaSettings::clear_last_revision_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.last_revision_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& SchemaSettings::last_revision_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SchemaSettings.last_revision_id)
  return _internal_last_revision_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SchemaSettings::set_last_revision_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.last_revision_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.SchemaSettings.last_revision_id)
}
inline ::std::string* PROTOBUF_NONNULL SchemaSettings::mutable_last_revision_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_last_revision_id();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.SchemaSettings.last_revision_id)
  return _s;
}
inline const ::std::string& SchemaSettings::_internal_last_revision_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.last_revision_id_.Get();
}
inline void SchemaSettings::_internal_set_last_revision_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.last_revision_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SchemaSettings::_internal_mutable_last_revision_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.last_revision_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SchemaSettings::release_last_revision_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.SchemaSettings.last_revision_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.last_revision_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.last_revision_id_.Set("", GetArena());
  }
  return released;
}
inline void SchemaSettings::set_allocated_last_revision_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.last_revision_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.last_revision_id_.IsDefault()) {
    _impl_.last_revision_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.SchemaSettings.last_revision_id)
}

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

// IngestionDataSourceSettings_AwsKinesis

// .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline void IngestionDataSourceSettings_AwsKinesis::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State IngestionDataSourceSettings_AwsKinesis::state() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.state)
  return _internal_state();
}
inline void IngestionDataSourceSettings_AwsKinesis::set_state(::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.state)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State IngestionDataSourceSettings_AwsKinesis::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State>(_impl_.state_);
}
inline void IngestionDataSourceSettings_AwsKinesis::_internal_set_state(::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// string stream_arn = 2 [(.google.api.field_behavior) = REQUIRED];
inline void IngestionDataSourceSettings_AwsKinesis::clear_stream_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_arn_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::stream_arn() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.stream_arn)
  return _internal_stream_arn();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_AwsKinesis::set_stream_arn(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.stream_arn_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.stream_arn)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::mutable_stream_arn()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_stream_arn();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.stream_arn)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::_internal_stream_arn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stream_arn_.Get();
}
inline void IngestionDataSourceSettings_AwsKinesis::_internal_set_stream_arn(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_arn_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::_internal_mutable_stream_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.stream_arn_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_AwsKinesis::release_stream_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.stream_arn)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.stream_arn_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.stream_arn_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_AwsKinesis::set_allocated_stream_arn(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.stream_arn_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.stream_arn_.IsDefault()) {
    _impl_.stream_arn_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.stream_arn)
}

// string consumer_arn = 3 [(.google.api.field_behavior) = REQUIRED];
inline void IngestionDataSourceSettings_AwsKinesis::clear_consumer_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.consumer_arn_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::consumer_arn() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.consumer_arn)
  return _internal_consumer_arn();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_AwsKinesis::set_consumer_arn(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.consumer_arn_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.consumer_arn)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::mutable_consumer_arn()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_consumer_arn();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.consumer_arn)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::_internal_consumer_arn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.consumer_arn_.Get();
}
inline void IngestionDataSourceSettings_AwsKinesis::_internal_set_consumer_arn(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.consumer_arn_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::_internal_mutable_consumer_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.consumer_arn_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_AwsKinesis::release_consumer_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.consumer_arn)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.consumer_arn_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.consumer_arn_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_AwsKinesis::set_allocated_consumer_arn(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.consumer_arn_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.consumer_arn_.IsDefault()) {
    _impl_.consumer_arn_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.consumer_arn)
}

// string aws_role_arn = 4 [(.google.api.field_behavior) = REQUIRED];
inline void IngestionDataSourceSettings_AwsKinesis::clear_aws_role_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.aws_role_arn_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::aws_role_arn() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.aws_role_arn)
  return _internal_aws_role_arn();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_AwsKinesis::set_aws_role_arn(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.aws_role_arn_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.aws_role_arn)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::mutable_aws_role_arn()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_aws_role_arn();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.aws_role_arn)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::_internal_aws_role_arn() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.aws_role_arn_.Get();
}
inline void IngestionDataSourceSettings_AwsKinesis::_internal_set_aws_role_arn(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.aws_role_arn_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::_internal_mutable_aws_role_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.aws_role_arn_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_AwsKinesis::release_aws_role_arn() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.aws_role_arn)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.aws_role_arn_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.aws_role_arn_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_AwsKinesis::set_allocated_aws_role_arn(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.aws_role_arn_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.aws_role_arn_.IsDefault()) {
    _impl_.aws_role_arn_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.aws_role_arn)
}

// string gcp_service_account = 5 [(.google.api.field_behavior) = REQUIRED];
inline void IngestionDataSourceSettings_AwsKinesis::clear_gcp_service_account() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.gcp_service_account_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::gcp_service_account() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.gcp_service_account)
  return _internal_gcp_service_account();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_AwsKinesis::set_gcp_service_account(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.gcp_service_account_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.gcp_service_account)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::mutable_gcp_service_account()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_gcp_service_account();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.gcp_service_account)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_AwsKinesis::_internal_gcp_service_account() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.gcp_service_account_.Get();
}
inline void IngestionDataSourceSettings_AwsKinesis::_internal_set_gcp_service_account(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.gcp_service_account_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_AwsKinesis::_internal_mutable_gcp_service_account() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.gcp_service_account_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_AwsKinesis::release_gcp_service_account() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.gcp_service_account)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.gcp_service_account_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.gcp_service_account_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_AwsKinesis::set_allocated_gcp_service_account(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.gcp_service_account_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.gcp_service_account_.IsDefault()) {
    _impl_.gcp_service_account_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis.gcp_service_account)
}

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

// IngestionDataSourceSettings_CloudStorage_TextFormat

// optional string delimiter = 1 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings_CloudStorage_TextFormat::has_delimiter() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  return value;
}
inline void IngestionDataSourceSettings_CloudStorage_TextFormat::clear_delimiter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.delimiter_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& IngestionDataSourceSettings_CloudStorage_TextFormat::delimiter() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.delimiter)
  return _internal_delimiter();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_CloudStorage_TextFormat::set_delimiter(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.delimiter_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.delimiter)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage_TextFormat::mutable_delimiter()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_delimiter();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.delimiter)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_CloudStorage_TextFormat::_internal_delimiter() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.delimiter_.Get();
}
inline void IngestionDataSourceSettings_CloudStorage_TextFormat::_internal_set_delimiter(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.delimiter_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage_TextFormat::_internal_mutable_delimiter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.delimiter_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage_TextFormat::release_delimiter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.delimiter)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.delimiter_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.delimiter_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_CloudStorage_TextFormat::set_allocated_delimiter(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.delimiter_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.delimiter_.IsDefault()) {
    _impl_.delimiter_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat.delimiter)
}

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

// IngestionDataSourceSettings_CloudStorage_AvroFormat

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

// IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat

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

// IngestionDataSourceSettings_CloudStorage

// .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.State state = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline void IngestionDataSourceSettings_CloudStorage::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State IngestionDataSourceSettings_CloudStorage::state() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.state)
  return _internal_state();
}
inline void IngestionDataSourceSettings_CloudStorage::set_state(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.state)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State IngestionDataSourceSettings_CloudStorage::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State>(_impl_.state_);
}
inline void IngestionDataSourceSettings_CloudStorage::_internal_set_state(::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// string bucket = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void IngestionDataSourceSettings_CloudStorage::clear_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bucket_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& IngestionDataSourceSettings_CloudStorage::bucket() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.bucket)
  return _internal_bucket();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_CloudStorage::set_bucket(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.bucket_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.bucket)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::mutable_bucket()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_bucket();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.bucket)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_CloudStorage::_internal_bucket() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bucket_.Get();
}
inline void IngestionDataSourceSettings_CloudStorage::_internal_set_bucket(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bucket_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::_internal_mutable_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.bucket_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::release_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.bucket)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.bucket_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.bucket_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_CloudStorage::set_allocated_bucket(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.bucket_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.bucket_.IsDefault()) {
    _impl_.bucket_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.bucket)
}

// .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat text_format = 3 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings_CloudStorage::has_text_format() const {
  return input_format_case() == kTextFormat;
}
inline bool IngestionDataSourceSettings_CloudStorage::_internal_has_text_format() const {
  return input_format_case() == kTextFormat;
}
inline void IngestionDataSourceSettings_CloudStorage::set_has_text_format() {
  _impl_._oneof_case_[0] = kTextFormat;
}
inline void IngestionDataSourceSettings_CloudStorage::clear_text_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (input_format_case() == kTextFormat) {
    if (GetArena() == nullptr) {
      delete _impl_.input_format_.text_format_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.input_format_.text_format_);
    }
    clear_has_input_format();
  }
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::release_text_format() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.text_format)
  if (input_format_case() == kTextFormat) {
    clear_has_input_format();
    auto* temp = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat*>(_impl_.input_format_.text_format_);
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.input_format_.text_format_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat& IngestionDataSourceSettings_CloudStorage::_internal_text_format() const {
  return input_format_case() == kTextFormat ? static_cast<const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat&>(*reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat*>(_impl_.input_format_.text_format_))
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat>(&::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat_globals_);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat& IngestionDataSourceSettings_CloudStorage::text_format() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.text_format)
  return _internal_text_format();
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::unsafe_arena_release_text_format() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.text_format)
  if (input_format_case() == kTextFormat) {
    clear_has_input_format();
    auto* temp = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat*>(_impl_.input_format_.text_format_);
    _impl_.input_format_.text_format_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionDataSourceSettings_CloudStorage::unsafe_arena_set_allocated_text_format(
    ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_input_format();
  if (value) {
    set_has_text_format();
    _impl_.input_format_.text_format_ = reinterpret_cast<::google::protobuf::Message*>(value);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.text_format)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::_internal_mutable_text_format() {
  if (input_format_case() != kTextFormat) {
    clear_input_format();
    set_has_text_format();
    _impl_.input_format_.text_format_ = reinterpret_cast<::google::protobuf::Message*>(
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat>(GetArena()));
  }
  return reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat*>(_impl_.input_format_.text_format_);
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::mutable_text_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_TextFormat* _msg = _internal_mutable_text_format();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.text_format)
  return _msg;
}

// .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat avro_format = 4 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings_CloudStorage::has_avro_format() const {
  return input_format_case() == kAvroFormat;
}
inline bool IngestionDataSourceSettings_CloudStorage::_internal_has_avro_format() const {
  return input_format_case() == kAvroFormat;
}
inline void IngestionDataSourceSettings_CloudStorage::set_has_avro_format() {
  _impl_._oneof_case_[0] = kAvroFormat;
}
inline void IngestionDataSourceSettings_CloudStorage::clear_avro_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (input_format_case() == kAvroFormat) {
    if (GetArena() == nullptr) {
      delete _impl_.input_format_.avro_format_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.input_format_.avro_format_);
    }
    clear_has_input_format();
  }
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::release_avro_format() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.avro_format)
  if (input_format_case() == kAvroFormat) {
    clear_has_input_format();
    auto* temp = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat*>(_impl_.input_format_.avro_format_);
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.input_format_.avro_format_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat& IngestionDataSourceSettings_CloudStorage::_internal_avro_format() const {
  return input_format_case() == kAvroFormat ? static_cast<const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat&>(*reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat*>(_impl_.input_format_.avro_format_))
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat>(&::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat_globals_);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat& IngestionDataSourceSettings_CloudStorage::avro_format() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.avro_format)
  return _internal_avro_format();
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::unsafe_arena_release_avro_format() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.avro_format)
  if (input_format_case() == kAvroFormat) {
    clear_has_input_format();
    auto* temp = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat*>(_impl_.input_format_.avro_format_);
    _impl_.input_format_.avro_format_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionDataSourceSettings_CloudStorage::unsafe_arena_set_allocated_avro_format(
    ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_input_format();
  if (value) {
    set_has_avro_format();
    _impl_.input_format_.avro_format_ = reinterpret_cast<::google::protobuf::Message*>(value);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.avro_format)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::_internal_mutable_avro_format() {
  if (input_format_case() != kAvroFormat) {
    clear_input_format();
    set_has_avro_format();
    _impl_.input_format_.avro_format_ = reinterpret_cast<::google::protobuf::Message*>(
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat>(GetArena()));
  }
  return reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat*>(_impl_.input_format_.avro_format_);
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::mutable_avro_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_AvroFormat* _msg = _internal_mutable_avro_format();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.avro_format)
  return _msg;
}

// .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat pubsub_avro_format = 5 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings_CloudStorage::has_pubsub_avro_format() const {
  return input_format_case() == kPubsubAvroFormat;
}
inline bool IngestionDataSourceSettings_CloudStorage::_internal_has_pubsub_avro_format() const {
  return input_format_case() == kPubsubAvroFormat;
}
inline void IngestionDataSourceSettings_CloudStorage::set_has_pubsub_avro_format() {
  _impl_._oneof_case_[0] = kPubsubAvroFormat;
}
inline void IngestionDataSourceSettings_CloudStorage::clear_pubsub_avro_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (input_format_case() == kPubsubAvroFormat) {
    if (GetArena() == nullptr) {
      delete _impl_.input_format_.pubsub_avro_format_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.input_format_.pubsub_avro_format_);
    }
    clear_has_input_format();
  }
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::release_pubsub_avro_format() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.pubsub_avro_format)
  if (input_format_case() == kPubsubAvroFormat) {
    clear_has_input_format();
    auto* temp = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat*>(_impl_.input_format_.pubsub_avro_format_);
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.input_format_.pubsub_avro_format_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& IngestionDataSourceSettings_CloudStorage::_internal_pubsub_avro_format() const {
  return input_format_case() == kPubsubAvroFormat ? static_cast<const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat&>(*reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat*>(_impl_.input_format_.pubsub_avro_format_))
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat>(&::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat_globals_);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat& IngestionDataSourceSettings_CloudStorage::pubsub_avro_format() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.pubsub_avro_format)
  return _internal_pubsub_avro_format();
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::unsafe_arena_release_pubsub_avro_format() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.pubsub_avro_format)
  if (input_format_case() == kPubsubAvroFormat) {
    clear_has_input_format();
    auto* temp = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat*>(_impl_.input_format_.pubsub_avro_format_);
    _impl_.input_format_.pubsub_avro_format_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionDataSourceSettings_CloudStorage::unsafe_arena_set_allocated_pubsub_avro_format(
    ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_input_format();
  if (value) {
    set_has_pubsub_avro_format();
    _impl_.input_format_.pubsub_avro_format_ = reinterpret_cast<::google::protobuf::Message*>(value);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.pubsub_avro_format)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::_internal_mutable_pubsub_avro_format() {
  if (input_format_case() != kPubsubAvroFormat) {
    clear_input_format();
    set_has_pubsub_avro_format();
    _impl_.input_format_.pubsub_avro_format_ = reinterpret_cast<::google::protobuf::Message*>(
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat>(GetArena()));
  }
  return reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat*>(_impl_.input_format_.pubsub_avro_format_);
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::mutable_pubsub_avro_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_PubSubAvroFormat* _msg = _internal_mutable_pubsub_avro_format();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.pubsub_avro_format)
  return _msg;
}

// .google.protobuf.Timestamp minimum_object_create_time = 6 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings_CloudStorage::has_minimum_object_create_time() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.minimum_object_create_time_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& IngestionDataSourceSettings_CloudStorage::_internal_minimum_object_create_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.minimum_object_create_time_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& IngestionDataSourceSettings_CloudStorage::minimum_object_create_time() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.minimum_object_create_time)
  return _internal_minimum_object_create_time();
}
inline void IngestionDataSourceSettings_CloudStorage::unsafe_arena_set_allocated_minimum_object_create_time(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_object_create_time_);
  }
  _impl_.minimum_object_create_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.minimum_object_create_time)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::release_minimum_object_create_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::protobuf::Timestamp* released = _impl_.minimum_object_create_time_;
  _impl_.minimum_object_create_time_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::unsafe_arena_release_minimum_object_create_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.minimum_object_create_time)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::protobuf::Timestamp* temp = _impl_.minimum_object_create_time_;
  _impl_.minimum_object_create_time_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::_internal_mutable_minimum_object_create_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.minimum_object_create_time_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.minimum_object_create_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.minimum_object_create_time_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::mutable_minimum_object_create_time()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_minimum_object_create_time();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.minimum_object_create_time)
  return _msg;
}
inline void IngestionDataSourceSettings_CloudStorage::set_allocated_minimum_object_create_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_object_create_time_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.minimum_object_create_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.minimum_object_create_time)
}

// string match_glob = 9 [(.google.api.field_behavior) = OPTIONAL];
inline void IngestionDataSourceSettings_CloudStorage::clear_match_glob() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.match_glob_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& IngestionDataSourceSettings_CloudStorage::match_glob() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.match_glob)
  return _internal_match_glob();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionDataSourceSettings_CloudStorage::set_match_glob(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.match_glob_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.match_glob)
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::mutable_match_glob()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_match_glob();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.match_glob)
  return _s;
}
inline const ::std::string& IngestionDataSourceSettings_CloudStorage::_internal_match_glob() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.match_glob_.Get();
}
inline void IngestionDataSourceSettings_CloudStorage::_internal_set_match_glob(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.match_glob_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionDataSourceSettings_CloudStorage::_internal_mutable_match_glob() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.match_glob_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionDataSourceSettings_CloudStorage::release_match_glob() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.match_glob)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.match_glob_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.match_glob_.Set("", GetArena());
  }
  return released;
}
inline void IngestionDataSourceSettings_CloudStorage::set_allocated_match_glob(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.match_glob_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.match_glob_.IsDefault()) {
    _impl_.match_glob_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.match_glob)
}

inline bool IngestionDataSourceSettings_CloudStorage::has_input_format() const {
  return input_format_case() != INPUT_FORMAT_NOT_SET;
}
inline void IngestionDataSourceSettings_CloudStorage::clear_has_input_format() {
  _impl_._oneof_case_[0] = INPUT_FORMAT_NOT_SET;
}
inline IngestionDataSourceSettings_CloudStorage::InputFormatCase IngestionDataSourceSettings_CloudStorage::input_format_case() const {
  return IngestionDataSourceSettings_CloudStorage::InputFormatCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// IngestionDataSourceSettings

// .google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis aws_kinesis = 1 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings::has_aws_kinesis() const {
  return source_case() == kAwsKinesis;
}
inline bool IngestionDataSourceSettings::_internal_has_aws_kinesis() const {
  return source_case() == kAwsKinesis;
}
inline void IngestionDataSourceSettings::set_has_aws_kinesis() {
  _impl_._oneof_case_[0] = kAwsKinesis;
}
inline void IngestionDataSourceSettings::clear_aws_kinesis() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (source_case() == kAwsKinesis) {
    if (GetArena() == nullptr) {
      delete _impl_.source_.aws_kinesis_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.source_.aws_kinesis_);
    }
    clear_has_source();
  }
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE IngestionDataSourceSettings::release_aws_kinesis() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.aws_kinesis)
  if (source_case() == kAwsKinesis) {
    clear_has_source();
    auto* temp = _impl_.source_.aws_kinesis_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.source_.aws_kinesis_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis& IngestionDataSourceSettings::_internal_aws_kinesis() const {
  return source_case() == kAwsKinesis ? static_cast<const ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis&>(*_impl_.source_.aws_kinesis_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis>(&::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_globals_);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis& IngestionDataSourceSettings::aws_kinesis() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.aws_kinesis)
  return _internal_aws_kinesis();
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE IngestionDataSourceSettings::unsafe_arena_release_aws_kinesis() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionDataSourceSettings.aws_kinesis)
  if (source_case() == kAwsKinesis) {
    clear_has_source();
    auto* temp = _impl_.source_.aws_kinesis_;
    _impl_.source_.aws_kinesis_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionDataSourceSettings::unsafe_arena_set_allocated_aws_kinesis(
    ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_source();
  if (value) {
    set_has_aws_kinesis();
    _impl_.source_.aws_kinesis_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.aws_kinesis)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL IngestionDataSourceSettings::_internal_mutable_aws_kinesis() {
  if (source_case() != kAwsKinesis) {
    clear_source();
    set_has_aws_kinesis();
    _impl_.source_.aws_kinesis_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis>(GetArena());
  }
  return _impl_.source_.aws_kinesis_;
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* PROTOBUF_NONNULL IngestionDataSourceSettings::mutable_aws_kinesis()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis* _msg = _internal_mutable_aws_kinesis();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.aws_kinesis)
  return _msg;
}

// .google.pubsub.v1.IngestionDataSourceSettings.CloudStorage cloud_storage = 2 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings::has_cloud_storage() const {
  return source_case() == kCloudStorage;
}
inline bool IngestionDataSourceSettings::_internal_has_cloud_storage() const {
  return source_case() == kCloudStorage;
}
inline void IngestionDataSourceSettings::set_has_cloud_storage() {
  _impl_._oneof_case_[0] = kCloudStorage;
}
inline void IngestionDataSourceSettings::clear_cloud_storage() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (source_case() == kCloudStorage) {
    if (GetArena() == nullptr) {
      delete _impl_.source_.cloud_storage_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.source_.cloud_storage_);
    }
    clear_has_source();
  }
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE IngestionDataSourceSettings::release_cloud_storage() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.cloud_storage)
  if (source_case() == kCloudStorage) {
    clear_has_source();
    auto* temp = _impl_.source_.cloud_storage_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.source_.cloud_storage_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage& IngestionDataSourceSettings::_internal_cloud_storage() const {
  return source_case() == kCloudStorage ? static_cast<const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage&>(*_impl_.source_.cloud_storage_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage>(&::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_globals_);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage& IngestionDataSourceSettings::cloud_storage() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.cloud_storage)
  return _internal_cloud_storage();
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE IngestionDataSourceSettings::unsafe_arena_release_cloud_storage() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionDataSourceSettings.cloud_storage)
  if (source_case() == kCloudStorage) {
    clear_has_source();
    auto* temp = _impl_.source_.cloud_storage_;
    _impl_.source_.cloud_storage_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionDataSourceSettings::unsafe_arena_set_allocated_cloud_storage(
    ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_source();
  if (value) {
    set_has_cloud_storage();
    _impl_.source_.cloud_storage_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.cloud_storage)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL IngestionDataSourceSettings::_internal_mutable_cloud_storage() {
  if (source_case() != kCloudStorage) {
    clear_source();
    set_has_cloud_storage();
    _impl_.source_.cloud_storage_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage>(GetArena());
  }
  return _impl_.source_.cloud_storage_;
}
inline ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* PROTOBUF_NONNULL IngestionDataSourceSettings::mutable_cloud_storage()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage* _msg = _internal_mutable_cloud_storage();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.cloud_storage)
  return _msg;
}

// .google.pubsub.v1.PlatformLogsSettings platform_logs_settings = 4 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionDataSourceSettings::has_platform_logs_settings() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.platform_logs_settings_ != nullptr);
  return value;
}
inline void IngestionDataSourceSettings::clear_platform_logs_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.platform_logs_settings_ != nullptr) _impl_.platform_logs_settings_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::PlatformLogsSettings& IngestionDataSourceSettings::_internal_platform_logs_settings() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::PlatformLogsSettings* p = _impl_.platform_logs_settings_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PlatformLogsSettings>(&::google::pubsub::v1::PlatformLogsSettings_globals_);
}
inline const ::google::pubsub::v1::PlatformLogsSettings& IngestionDataSourceSettings::platform_logs_settings() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionDataSourceSettings.platform_logs_settings)
  return _internal_platform_logs_settings();
}
inline void IngestionDataSourceSettings::unsafe_arena_set_allocated_platform_logs_settings(
    ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.platform_logs_settings_);
  }
  _impl_.platform_logs_settings_ = reinterpret_cast<::google::pubsub::v1::PlatformLogsSettings*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.platform_logs_settings)
}
inline ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE IngestionDataSourceSettings::release_platform_logs_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::PlatformLogsSettings* released = _impl_.platform_logs_settings_;
  _impl_.platform_logs_settings_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE IngestionDataSourceSettings::unsafe_arena_release_platform_logs_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionDataSourceSettings.platform_logs_settings)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::PlatformLogsSettings* temp = _impl_.platform_logs_settings_;
  _impl_.platform_logs_settings_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NONNULL IngestionDataSourceSettings::_internal_mutable_platform_logs_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.platform_logs_settings_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PlatformLogsSettings>(GetArena());
    _impl_.platform_logs_settings_ = reinterpret_cast<::google::pubsub::v1::PlatformLogsSettings*>(p);
  }
  return _impl_.platform_logs_settings_;
}
inline ::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NONNULL IngestionDataSourceSettings::mutable_platform_logs_settings()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::PlatformLogsSettings* _msg = _internal_mutable_platform_logs_settings();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionDataSourceSettings.platform_logs_settings)
  return _msg;
}
inline void IngestionDataSourceSettings::set_allocated_platform_logs_settings(::google::pubsub::v1::PlatformLogsSettings* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.platform_logs_settings_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.platform_logs_settings_ = reinterpret_cast<::google::pubsub::v1::PlatformLogsSettings*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionDataSourceSettings.platform_logs_settings)
}

inline bool IngestionDataSourceSettings::has_source() const {
  return source_case() != SOURCE_NOT_SET;
}
inline void IngestionDataSourceSettings::clear_has_source() {
  _impl_._oneof_case_[0] = SOURCE_NOT_SET;
}
inline IngestionDataSourceSettings::SourceCase IngestionDataSourceSettings::source_case() const {
  return IngestionDataSourceSettings::SourceCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// PlatformLogsSettings

// .google.pubsub.v1.PlatformLogsSettings.Severity severity = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void PlatformLogsSettings::clear_severity() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.severity_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::google::pubsub::v1::PlatformLogsSettings_Severity PlatformLogsSettings::severity() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PlatformLogsSettings.severity)
  return _internal_severity();
}
inline void PlatformLogsSettings::set_severity(::google::pubsub::v1::PlatformLogsSettings_Severity value) {
  _internal_set_severity(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PlatformLogsSettings.severity)
}
inline ::google::pubsub::v1::PlatformLogsSettings_Severity PlatformLogsSettings::_internal_severity() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::PlatformLogsSettings_Severity>(_impl_.severity_);
}
inline void PlatformLogsSettings::_internal_set_severity(::google::pubsub::v1::PlatformLogsSettings_Severity value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.severity_ = value;
}

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

// IngestionFailureEvent_ApiViolationReason

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

// IngestionFailureEvent_AvroFailureReason

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

// IngestionFailureEvent_CloudStorageFailure

// string bucket = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void IngestionFailureEvent_CloudStorageFailure::clear_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bucket_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& IngestionFailureEvent_CloudStorageFailure::bucket() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.bucket)
  return _internal_bucket();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionFailureEvent_CloudStorageFailure::set_bucket(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.bucket_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.bucket)
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::mutable_bucket()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_bucket();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.bucket)
  return _s;
}
inline const ::std::string& IngestionFailureEvent_CloudStorageFailure::_internal_bucket() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bucket_.Get();
}
inline void IngestionFailureEvent_CloudStorageFailure::_internal_set_bucket(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bucket_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::_internal_mutable_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.bucket_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionFailureEvent_CloudStorageFailure::release_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.bucket)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.bucket_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.bucket_.Set("", GetArena());
  }
  return released;
}
inline void IngestionFailureEvent_CloudStorageFailure::set_allocated_bucket(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.bucket_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.bucket_.IsDefault()) {
    _impl_.bucket_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.bucket)
}

// string object_name = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void IngestionFailureEvent_CloudStorageFailure::clear_object_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.object_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& IngestionFailureEvent_CloudStorageFailure::object_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_name)
  return _internal_object_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionFailureEvent_CloudStorageFailure::set_object_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.object_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_name)
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::mutable_object_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_object_name();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_name)
  return _s;
}
inline const ::std::string& IngestionFailureEvent_CloudStorageFailure::_internal_object_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.object_name_.Get();
}
inline void IngestionFailureEvent_CloudStorageFailure::_internal_set_object_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.object_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::_internal_mutable_object_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.object_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionFailureEvent_CloudStorageFailure::release_object_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.object_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.object_name_.Set("", GetArena());
  }
  return released;
}
inline void IngestionFailureEvent_CloudStorageFailure::set_allocated_object_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.object_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.object_name_.IsDefault()) {
    _impl_.object_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_name)
}

// int64 object_generation = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void IngestionFailureEvent_CloudStorageFailure::clear_object_generation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.object_generation_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int64_t IngestionFailureEvent_CloudStorageFailure::object_generation() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_generation)
  return _internal_object_generation();
}
inline void IngestionFailureEvent_CloudStorageFailure::set_object_generation(::int64_t value) {
  _internal_set_object_generation(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.object_generation)
}
inline ::int64_t IngestionFailureEvent_CloudStorageFailure::_internal_object_generation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.object_generation_;
}
inline void IngestionFailureEvent_CloudStorageFailure::_internal_set_object_generation(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.object_generation_ = value;
}

// .google.pubsub.v1.IngestionFailureEvent.AvroFailureReason avro_failure_reason = 5 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionFailureEvent_CloudStorageFailure::has_avro_failure_reason() const {
  return reason_case() == kAvroFailureReason;
}
inline bool IngestionFailureEvent_CloudStorageFailure::_internal_has_avro_failure_reason() const {
  return reason_case() == kAvroFailureReason;
}
inline void IngestionFailureEvent_CloudStorageFailure::set_has_avro_failure_reason() {
  _impl_._oneof_case_[0] = kAvroFailureReason;
}
inline void IngestionFailureEvent_CloudStorageFailure::clear_avro_failure_reason() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (reason_case() == kAvroFailureReason) {
    if (GetArena() == nullptr) {
      delete _impl_.reason_.avro_failure_reason_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reason_.avro_failure_reason_);
    }
    clear_has_reason();
  }
}
inline ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE IngestionFailureEvent_CloudStorageFailure::release_avro_failure_reason() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.avro_failure_reason)
  if (reason_case() == kAvroFailureReason) {
    clear_has_reason();
    auto* temp = _impl_.reason_.avro_failure_reason_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.avro_failure_reason_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason& IngestionFailureEvent_CloudStorageFailure::_internal_avro_failure_reason() const {
  return reason_case() == kAvroFailureReason ? static_cast<const ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason&>(*_impl_.reason_.avro_failure_reason_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason>(&::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason_globals_);
}
inline const ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason& IngestionFailureEvent_CloudStorageFailure::avro_failure_reason() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.avro_failure_reason)
  return _internal_avro_failure_reason();
}
inline ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE IngestionFailureEvent_CloudStorageFailure::unsafe_arena_release_avro_failure_reason() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.avro_failure_reason)
  if (reason_case() == kAvroFailureReason) {
    clear_has_reason();
    auto* temp = _impl_.reason_.avro_failure_reason_;
    _impl_.reason_.avro_failure_reason_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionFailureEvent_CloudStorageFailure::unsafe_arena_set_allocated_avro_failure_reason(
    ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_reason();
  if (value) {
    set_has_avro_failure_reason();
    _impl_.reason_.avro_failure_reason_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.avro_failure_reason)
}
inline ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::_internal_mutable_avro_failure_reason() {
  if (reason_case() != kAvroFailureReason) {
    clear_reason();
    set_has_avro_failure_reason();
    _impl_.reason_.avro_failure_reason_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason>(GetArena());
  }
  return _impl_.reason_.avro_failure_reason_;
}
inline ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::mutable_avro_failure_reason()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionFailureEvent_AvroFailureReason* _msg = _internal_mutable_avro_failure_reason();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.avro_failure_reason)
  return _msg;
}

// .google.pubsub.v1.IngestionFailureEvent.ApiViolationReason api_violation_reason = 6 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionFailureEvent_CloudStorageFailure::has_api_violation_reason() const {
  return reason_case() == kApiViolationReason;
}
inline bool IngestionFailureEvent_CloudStorageFailure::_internal_has_api_violation_reason() const {
  return reason_case() == kApiViolationReason;
}
inline void IngestionFailureEvent_CloudStorageFailure::set_has_api_violation_reason() {
  _impl_._oneof_case_[0] = kApiViolationReason;
}
inline void IngestionFailureEvent_CloudStorageFailure::clear_api_violation_reason() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (reason_case() == kApiViolationReason) {
    if (GetArena() == nullptr) {
      delete _impl_.reason_.api_violation_reason_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.reason_.api_violation_reason_);
    }
    clear_has_reason();
  }
}
inline ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE IngestionFailureEvent_CloudStorageFailure::release_api_violation_reason() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.api_violation_reason)
  if (reason_case() == kApiViolationReason) {
    clear_has_reason();
    auto* temp = _impl_.reason_.api_violation_reason_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.reason_.api_violation_reason_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason& IngestionFailureEvent_CloudStorageFailure::_internal_api_violation_reason() const {
  return reason_case() == kApiViolationReason ? static_cast<const ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason&>(*_impl_.reason_.api_violation_reason_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason>(&::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason_globals_);
}
inline const ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason& IngestionFailureEvent_CloudStorageFailure::api_violation_reason() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.api_violation_reason)
  return _internal_api_violation_reason();
}
inline ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE IngestionFailureEvent_CloudStorageFailure::unsafe_arena_release_api_violation_reason() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.api_violation_reason)
  if (reason_case() == kApiViolationReason) {
    clear_has_reason();
    auto* temp = _impl_.reason_.api_violation_reason_;
    _impl_.reason_.api_violation_reason_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionFailureEvent_CloudStorageFailure::unsafe_arena_set_allocated_api_violation_reason(
    ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_reason();
  if (value) {
    set_has_api_violation_reason();
    _impl_.reason_.api_violation_reason_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.api_violation_reason)
}
inline ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::_internal_mutable_api_violation_reason() {
  if (reason_case() != kApiViolationReason) {
    clear_reason();
    set_has_api_violation_reason();
    _impl_.reason_.api_violation_reason_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason>(GetArena());
  }
  return _impl_.reason_.api_violation_reason_;
}
inline ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* PROTOBUF_NONNULL IngestionFailureEvent_CloudStorageFailure::mutable_api_violation_reason()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionFailureEvent_ApiViolationReason* _msg = _internal_mutable_api_violation_reason();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure.api_violation_reason)
  return _msg;
}

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

// IngestionFailureEvent

// string topic = 1 [(.google.api.field_behavior) = REQUIRED];
inline void IngestionFailureEvent::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& IngestionFailureEvent::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionFailureEvent::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionFailureEvent.topic)
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.topic)
  return _s;
}
inline const ::std::string& IngestionFailureEvent::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void IngestionFailureEvent::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionFailureEvent::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void IngestionFailureEvent::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionFailureEvent.topic)
}

// string error_message = 2 [(.google.api.field_behavior) = REQUIRED];
inline void IngestionFailureEvent::clear_error_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.error_message_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& IngestionFailureEvent::error_message() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.error_message)
  return _internal_error_message();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void IngestionFailureEvent::set_error_message(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.error_message_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.IngestionFailureEvent.error_message)
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent::mutable_error_message()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_error_message();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.error_message)
  return _s;
}
inline const ::std::string& IngestionFailureEvent::_internal_error_message() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.error_message_.Get();
}
inline void IngestionFailureEvent::_internal_set_error_message(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.error_message_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL IngestionFailureEvent::_internal_mutable_error_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.error_message_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE IngestionFailureEvent::release_error_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.error_message)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.error_message_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.error_message_.Set("", GetArena());
  }
  return released;
}
inline void IngestionFailureEvent::set_allocated_error_message(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.error_message_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.error_message_.IsDefault()) {
    _impl_.error_message_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.IngestionFailureEvent.error_message)
}

// .google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure cloud_storage_failure = 3 [(.google.api.field_behavior) = OPTIONAL];
inline bool IngestionFailureEvent::has_cloud_storage_failure() const {
  return failure_case() == kCloudStorageFailure;
}
inline bool IngestionFailureEvent::_internal_has_cloud_storage_failure() const {
  return failure_case() == kCloudStorageFailure;
}
inline void IngestionFailureEvent::set_has_cloud_storage_failure() {
  _impl_._oneof_case_[0] = kCloudStorageFailure;
}
inline void IngestionFailureEvent::clear_cloud_storage_failure() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (failure_case() == kCloudStorageFailure) {
    if (GetArena() == nullptr) {
      delete _impl_.failure_.cloud_storage_failure_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.failure_.cloud_storage_failure_);
    }
    clear_has_failure();
  }
}
inline ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE IngestionFailureEvent::release_cloud_storage_failure() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.IngestionFailureEvent.cloud_storage_failure)
  if (failure_case() == kCloudStorageFailure) {
    clear_has_failure();
    auto* temp = _impl_.failure_.cloud_storage_failure_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.failure_.cloud_storage_failure_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure& IngestionFailureEvent::_internal_cloud_storage_failure() const {
  return failure_case() == kCloudStorageFailure ? static_cast<const ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure&>(*_impl_.failure_.cloud_storage_failure_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure>(&::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure_globals_);
}
inline const ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure& IngestionFailureEvent::cloud_storage_failure() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.IngestionFailureEvent.cloud_storage_failure)
  return _internal_cloud_storage_failure();
}
inline ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE IngestionFailureEvent::unsafe_arena_release_cloud_storage_failure() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.IngestionFailureEvent.cloud_storage_failure)
  if (failure_case() == kCloudStorageFailure) {
    clear_has_failure();
    auto* temp = _impl_.failure_.cloud_storage_failure_;
    _impl_.failure_.cloud_storage_failure_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void IngestionFailureEvent::unsafe_arena_set_allocated_cloud_storage_failure(
    ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_failure();
  if (value) {
    set_has_cloud_storage_failure();
    _impl_.failure_.cloud_storage_failure_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.IngestionFailureEvent.cloud_storage_failure)
}
inline ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL IngestionFailureEvent::_internal_mutable_cloud_storage_failure() {
  if (failure_case() != kCloudStorageFailure) {
    clear_failure();
    set_has_cloud_storage_failure();
    _impl_.failure_.cloud_storage_failure_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure>(GetArena());
  }
  return _impl_.failure_.cloud_storage_failure_;
}
inline ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* PROTOBUF_NONNULL IngestionFailureEvent::mutable_cloud_storage_failure()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::IngestionFailureEvent_CloudStorageFailure* _msg = _internal_mutable_cloud_storage_failure();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.IngestionFailureEvent.cloud_storage_failure)
  return _msg;
}

inline bool IngestionFailureEvent::has_failure() const {
  return failure_case() != FAILURE_NOT_SET;
}
inline void IngestionFailureEvent::clear_has_failure() {
  _impl_._oneof_case_[0] = FAILURE_NOT_SET;
}
inline IngestionFailureEvent::FailureCase IngestionFailureEvent::failure_case() const {
  return IngestionFailureEvent::FailureCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

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

// Topic

// string name = 1 [(.google.api.field_behavior) = REQUIRED];
inline void Topic::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Topic::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Topic::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Topic.name)
}
inline ::std::string* PROTOBUF_NONNULL Topic::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Topic.name)
  return _s;
}
inline const ::std::string& Topic::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Topic::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Topic::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Topic::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Topic.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Topic::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Topic.name)
}

// map<string, string> labels = 2 [(.google.api.field_behavior) = OPTIONAL];
inline int Topic::_internal_labels_size() const {
  return _internal_labels().size();
}
inline int Topic::labels_size() const {
  return _internal_labels_size();
}
inline void Topic::clear_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.labels_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& Topic::_internal_labels() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.labels_.GetMap();
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& Topic::labels() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:google.pubsub.v1.Topic.labels)
  return _internal_labels();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL Topic::_internal_mutable_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.labels_.MutableMap();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL Topic::mutable_labels()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_mutable_map:google.pubsub.v1.Topic.labels)
  return _internal_mutable_labels();
}

// .google.pubsub.v1.MessageStoragePolicy message_storage_policy = 3 [(.google.api.field_behavior) = OPTIONAL];
inline bool Topic::has_message_storage_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.message_storage_policy_ != nullptr);
  return value;
}
inline void Topic::clear_message_storage_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.message_storage_policy_ != nullptr) _impl_.message_storage_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::google::pubsub::v1::MessageStoragePolicy& Topic::_internal_message_storage_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::MessageStoragePolicy* p = _impl_.message_storage_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::MessageStoragePolicy>(&::google::pubsub::v1::MessageStoragePolicy_globals_);
}
inline const ::google::pubsub::v1::MessageStoragePolicy& Topic::message_storage_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.message_storage_policy)
  return _internal_message_storage_policy();
}
inline void Topic::unsafe_arena_set_allocated_message_storage_policy(
    ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_storage_policy_);
  }
  _impl_.message_storage_policy_ = reinterpret_cast<::google::pubsub::v1::MessageStoragePolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Topic.message_storage_policy)
}
inline ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE Topic::release_message_storage_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::pubsub::v1::MessageStoragePolicy* released = _impl_.message_storage_policy_;
  _impl_.message_storage_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE Topic::unsafe_arena_release_message_storage_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Topic.message_storage_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::pubsub::v1::MessageStoragePolicy* temp = _impl_.message_storage_policy_;
  _impl_.message_storage_policy_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NONNULL Topic::_internal_mutable_message_storage_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.message_storage_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::MessageStoragePolicy>(GetArena());
    _impl_.message_storage_policy_ = reinterpret_cast<::google::pubsub::v1::MessageStoragePolicy*>(p);
  }
  return _impl_.message_storage_policy_;
}
inline ::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NONNULL Topic::mutable_message_storage_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::pubsub::v1::MessageStoragePolicy* _msg = _internal_mutable_message_storage_policy();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Topic.message_storage_policy)
  return _msg;
}
inline void Topic::set_allocated_message_storage_policy(::google::pubsub::v1::MessageStoragePolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_storage_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.message_storage_policy_ = reinterpret_cast<::google::pubsub::v1::MessageStoragePolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Topic.message_storage_policy)
}

// string kms_key_name = 5 [(.google.api.field_behavior) = OPTIONAL];
inline void Topic::clear_kms_key_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kms_key_name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Topic::kms_key_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.kms_key_name)
  return _internal_kms_key_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Topic::set_kms_key_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.kms_key_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Topic.kms_key_name)
}
inline ::std::string* PROTOBUF_NONNULL Topic::mutable_kms_key_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_kms_key_name();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Topic.kms_key_name)
  return _s;
}
inline const ::std::string& Topic::_internal_kms_key_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.kms_key_name_.Get();
}
inline void Topic::_internal_set_kms_key_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.kms_key_name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Topic::_internal_mutable_kms_key_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.kms_key_name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Topic::release_kms_key_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Topic.kms_key_name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.kms_key_name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.kms_key_name_.Set("", GetArena());
  }
  return released;
}
inline void Topic::set_allocated_kms_key_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.kms_key_name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.kms_key_name_.IsDefault()) {
    _impl_.kms_key_name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Topic.kms_key_name)
}

// .google.pubsub.v1.SchemaSettings schema_settings = 6 [(.google.api.field_behavior) = OPTIONAL];
inline bool Topic::has_schema_settings() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.schema_settings_ != nullptr);
  return value;
}
inline void Topic::clear_schema_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.schema_settings_ != nullptr) _impl_.schema_settings_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::google::pubsub::v1::SchemaSettings& Topic::_internal_schema_settings() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::SchemaSettings* p = _impl_.schema_settings_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::SchemaSettings>(&::google::pubsub::v1::SchemaSettings_globals_);
}
inline const ::google::pubsub::v1::SchemaSettings& Topic::schema_settings() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.schema_settings)
  return _internal_schema_settings();
}
inline void Topic::unsafe_arena_set_allocated_schema_settings(
    ::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.schema_settings_);
  }
  _impl_.schema_settings_ = reinterpret_cast<::google::pubsub::v1::SchemaSettings*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Topic.schema_settings)
}
inline ::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE Topic::release_schema_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::SchemaSettings* released = _impl_.schema_settings_;
  _impl_.schema_settings_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE Topic::unsafe_arena_release_schema_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Topic.schema_settings)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::SchemaSettings* temp = _impl_.schema_settings_;
  _impl_.schema_settings_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::SchemaSettings* PROTOBUF_NONNULL Topic::_internal_mutable_schema_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.schema_settings_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::SchemaSettings>(GetArena());
    _impl_.schema_settings_ = reinterpret_cast<::google::pubsub::v1::SchemaSettings*>(p);
  }
  return _impl_.schema_settings_;
}
inline ::google::pubsub::v1::SchemaSettings* PROTOBUF_NONNULL Topic::mutable_schema_settings()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::SchemaSettings* _msg = _internal_mutable_schema_settings();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Topic.schema_settings)
  return _msg;
}
inline void Topic::set_allocated_schema_settings(::google::pubsub::v1::SchemaSettings* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.schema_settings_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.schema_settings_ = reinterpret_cast<::google::pubsub::v1::SchemaSettings*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Topic.schema_settings)
}

// bool satisfies_pzs = 7 [(.google.api.field_behavior) = OPTIONAL];
inline void Topic::clear_satisfies_pzs() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.satisfies_pzs_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline bool Topic::satisfies_pzs() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.satisfies_pzs)
  return _internal_satisfies_pzs();
}
inline void Topic::set_satisfies_pzs(bool value) {
  _internal_set_satisfies_pzs(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Topic.satisfies_pzs)
}
inline bool Topic::_internal_satisfies_pzs() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.satisfies_pzs_;
}
inline void Topic::_internal_set_satisfies_pzs(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.satisfies_pzs_ = value;
}

// .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL];
inline bool Topic::has_message_retention_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.message_retention_duration_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& Topic::_internal_message_retention_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.message_retention_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& Topic::message_retention_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.message_retention_duration)
  return _internal_message_retention_duration();
}
inline void Topic::unsafe_arena_set_allocated_message_retention_duration(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_retention_duration_);
  }
  _impl_.message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Topic.message_retention_duration)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE Topic::release_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::google::protobuf::Duration* released = _impl_.message_retention_duration_;
  _impl_.message_retention_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE Topic::unsafe_arena_release_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Topic.message_retention_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::google::protobuf::Duration* temp = _impl_.message_retention_duration_;
  _impl_.message_retention_duration_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL Topic::_internal_mutable_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.message_retention_duration_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.message_retention_duration_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL Topic::mutable_message_retention_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::google::protobuf::Duration* _msg = _internal_mutable_message_retention_duration();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Topic.message_retention_duration)
  return _msg;
}
inline void Topic::set_allocated_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_retention_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Topic.message_retention_duration)
}

// .google.pubsub.v1.Topic.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline void Topic::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::google::pubsub::v1::Topic_State Topic::state() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.state)
  return _internal_state();
}
inline void Topic::set_state(::google::pubsub::v1::Topic_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Topic.state)
}
inline ::google::pubsub::v1::Topic_State Topic::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::Topic_State>(_impl_.state_);
}
inline void Topic::_internal_set_state(::google::pubsub::v1::Topic_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// .google.pubsub.v1.IngestionDataSourceSettings ingestion_data_source_settings = 10 [(.google.api.field_behavior) = OPTIONAL];
inline bool Topic::has_ingestion_data_source_settings() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.ingestion_data_source_settings_ != nullptr);
  return value;
}
inline void Topic::clear_ingestion_data_source_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ingestion_data_source_settings_ != nullptr) _impl_.ingestion_data_source_settings_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings& Topic::_internal_ingestion_data_source_settings() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::IngestionDataSourceSettings* p = _impl_.ingestion_data_source_settings_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::IngestionDataSourceSettings>(&::google::pubsub::v1::IngestionDataSourceSettings_globals_);
}
inline const ::google::pubsub::v1::IngestionDataSourceSettings& Topic::ingestion_data_source_settings() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Topic.ingestion_data_source_settings)
  return _internal_ingestion_data_source_settings();
}
inline void Topic::unsafe_arena_set_allocated_ingestion_data_source_settings(
    ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ingestion_data_source_settings_);
  }
  _impl_.ingestion_data_source_settings_ = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Topic.ingestion_data_source_settings)
}
inline ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE Topic::release_ingestion_data_source_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::pubsub::v1::IngestionDataSourceSettings* released = _impl_.ingestion_data_source_settings_;
  _impl_.ingestion_data_source_settings_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE Topic::unsafe_arena_release_ingestion_data_source_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Topic.ingestion_data_source_settings)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::pubsub::v1::IngestionDataSourceSettings* temp = _impl_.ingestion_data_source_settings_;
  _impl_.ingestion_data_source_settings_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NONNULL Topic::_internal_mutable_ingestion_data_source_settings() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ingestion_data_source_settings_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::IngestionDataSourceSettings>(GetArena());
    _impl_.ingestion_data_source_settings_ = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings*>(p);
  }
  return _impl_.ingestion_data_source_settings_;
}
inline ::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NONNULL Topic::mutable_ingestion_data_source_settings()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::pubsub::v1::IngestionDataSourceSettings* _msg = _internal_mutable_ingestion_data_source_settings();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Topic.ingestion_data_source_settings)
  return _msg;
}
inline void Topic::set_allocated_ingestion_data_source_settings(::google::pubsub::v1::IngestionDataSourceSettings* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ingestion_data_source_settings_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.ingestion_data_source_settings_ = reinterpret_cast<::google::pubsub::v1::IngestionDataSourceSettings*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Topic.ingestion_data_source_settings)
}

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

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

// PubsubMessage

// bytes data = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void PubsubMessage::clear_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PubsubMessage::data() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PubsubMessage.data)
  return _internal_data();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PubsubMessage::set_data(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.data_.SetBytes(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PubsubMessage.data)
}
inline ::std::string* PROTOBUF_NONNULL PubsubMessage::mutable_data()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_data();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PubsubMessage.data)
  return _s;
}
inline const ::std::string& PubsubMessage::_internal_data() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.data_.Get();
}
inline void PubsubMessage::_internal_set_data(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.data_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PubsubMessage::_internal_mutable_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.data_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PubsubMessage::release_data() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PubsubMessage.data)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.data_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.data_.Set("", GetArena());
  }
  return released;
}
inline void PubsubMessage::set_allocated_data(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.data_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.data_.IsDefault()) {
    _impl_.data_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PubsubMessage.data)
}

// map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL];
inline int PubsubMessage::_internal_attributes_size() const {
  return _internal_attributes().size();
}
inline int PubsubMessage::attributes_size() const {
  return _internal_attributes_size();
}
inline void PubsubMessage::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& PubsubMessage::_internal_attributes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.attributes_.GetMap();
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& PubsubMessage::attributes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:google.pubsub.v1.PubsubMessage.attributes)
  return _internal_attributes();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL PubsubMessage::_internal_mutable_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.attributes_.MutableMap();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL PubsubMessage::mutable_attributes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_mutable_map:google.pubsub.v1.PubsubMessage.attributes)
  return _internal_mutable_attributes();
}

// string message_id = 3;
inline void PubsubMessage::clear_message_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PubsubMessage::message_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PubsubMessage.message_id)
  return _internal_message_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PubsubMessage::set_message_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.message_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PubsubMessage.message_id)
}
inline ::std::string* PROTOBUF_NONNULL PubsubMessage::mutable_message_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_message_id();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PubsubMessage.message_id)
  return _s;
}
inline const ::std::string& PubsubMessage::_internal_message_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.message_id_.Get();
}
inline void PubsubMessage::_internal_set_message_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PubsubMessage::_internal_mutable_message_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.message_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PubsubMessage::release_message_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PubsubMessage.message_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.message_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.message_id_.Set("", GetArena());
  }
  return released;
}
inline void PubsubMessage::set_allocated_message_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.message_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.message_id_.IsDefault()) {
    _impl_.message_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PubsubMessage.message_id)
}

// .google.protobuf.Timestamp publish_time = 4;
inline bool PubsubMessage::has_publish_time() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.publish_time_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& PubsubMessage::_internal_publish_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.publish_time_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& PubsubMessage::publish_time() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PubsubMessage.publish_time)
  return _internal_publish_time();
}
inline void PubsubMessage::unsafe_arena_set_allocated_publish_time(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.publish_time_);
  }
  _impl_.publish_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.PubsubMessage.publish_time)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE PubsubMessage::release_publish_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::protobuf::Timestamp* released = _impl_.publish_time_;
  _impl_.publish_time_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE PubsubMessage::unsafe_arena_release_publish_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PubsubMessage.publish_time)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::protobuf::Timestamp* temp = _impl_.publish_time_;
  _impl_.publish_time_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL PubsubMessage::_internal_mutable_publish_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.publish_time_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.publish_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.publish_time_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL PubsubMessage::mutable_publish_time()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_publish_time();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PubsubMessage.publish_time)
  return _msg;
}
inline void PubsubMessage::set_allocated_publish_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.publish_time_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.publish_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PubsubMessage.publish_time)
}

// string ordering_key = 5 [(.google.api.field_behavior) = OPTIONAL];
inline void PubsubMessage::clear_ordering_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ordering_key_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& PubsubMessage::ordering_key() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PubsubMessage.ordering_key)
  return _internal_ordering_key();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PubsubMessage::set_ordering_key(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.ordering_key_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PubsubMessage.ordering_key)
}
inline ::std::string* PROTOBUF_NONNULL PubsubMessage::mutable_ordering_key()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_ordering_key();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PubsubMessage.ordering_key)
  return _s;
}
inline const ::std::string& PubsubMessage::_internal_ordering_key() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ordering_key_.Get();
}
inline void PubsubMessage::_internal_set_ordering_key(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ordering_key_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PubsubMessage::_internal_mutable_ordering_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.ordering_key_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PubsubMessage::release_ordering_key() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PubsubMessage.ordering_key)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.ordering_key_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.ordering_key_.Set("", GetArena());
  }
  return released;
}
inline void PubsubMessage::set_allocated_ordering_key(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.ordering_key_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.ordering_key_.IsDefault()) {
    _impl_.ordering_key_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PubsubMessage.ordering_key)
}

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

// GetTopicRequest

// string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void GetTopicRequest::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& GetTopicRequest::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.GetTopicRequest.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void GetTopicRequest::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.GetTopicRequest.topic)
}
inline ::std::string* PROTOBUF_NONNULL GetTopicRequest::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.GetTopicRequest.topic)
  return _s;
}
inline const ::std::string& GetTopicRequest::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void GetTopicRequest::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL GetTopicRequest::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE GetTopicRequest::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.GetTopicRequest.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void GetTopicRequest::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.GetTopicRequest.topic)
}

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

// UpdateTopicRequest

// .google.pubsub.v1.Topic topic = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool UpdateTopicRequest::has_topic() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.topic_ != nullptr);
  return value;
}
inline void UpdateTopicRequest::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.topic_ != nullptr) _impl_.topic_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::Topic& UpdateTopicRequest::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::Topic* p = _impl_.topic_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::Topic>(&::google::pubsub::v1::Topic_globals_);
}
inline const ::google::pubsub::v1::Topic& UpdateTopicRequest::topic() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.UpdateTopicRequest.topic)
  return _internal_topic();
}
inline void UpdateTopicRequest::unsafe_arena_set_allocated_topic(
    ::google::pubsub::v1::Topic* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.topic_);
  }
  _impl_.topic_ = reinterpret_cast<::google::pubsub::v1::Topic*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.UpdateTopicRequest.topic)
}
inline ::google::pubsub::v1::Topic* PROTOBUF_NULLABLE UpdateTopicRequest::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Topic* released = _impl_.topic_;
  _impl_.topic_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::Topic* PROTOBUF_NULLABLE UpdateTopicRequest::unsafe_arena_release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.UpdateTopicRequest.topic)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Topic* temp = _impl_.topic_;
  _impl_.topic_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::Topic* PROTOBUF_NONNULL UpdateTopicRequest::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.topic_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::Topic>(GetArena());
    _impl_.topic_ = reinterpret_cast<::google::pubsub::v1::Topic*>(p);
  }
  return _impl_.topic_;
}
inline ::google::pubsub::v1::Topic* PROTOBUF_NONNULL UpdateTopicRequest::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Topic* _msg = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.UpdateTopicRequest.topic)
  return _msg;
}
inline void UpdateTopicRequest::set_allocated_topic(::google::pubsub::v1::Topic* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.topic_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.topic_ = reinterpret_cast<::google::pubsub::v1::Topic*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.UpdateTopicRequest.topic)
}

// .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
inline bool UpdateTopicRequest::has_update_mask() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.update_mask_ != nullptr);
  return value;
}
inline const ::google::protobuf::FieldMask& UpdateTopicRequest::_internal_update_mask() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::FieldMask* p = _impl_.update_mask_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::FieldMask>(&::google::protobuf::FieldMask_globals_);
}
inline const ::google::protobuf::FieldMask& UpdateTopicRequest::update_mask() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.UpdateTopicRequest.update_mask)
  return _internal_update_mask();
}
inline void UpdateTopicRequest::unsafe_arena_set_allocated_update_mask(
    ::google::protobuf::FieldMask* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.update_mask_);
  }
  _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.UpdateTopicRequest.update_mask)
}
inline ::google::protobuf::FieldMask* PROTOBUF_NULLABLE UpdateTopicRequest::release_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* released = _impl_.update_mask_;
  _impl_.update_mask_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NULLABLE UpdateTopicRequest::unsafe_arena_release_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.UpdateTopicRequest.update_mask)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* temp = _impl_.update_mask_;
  _impl_.update_mask_ = nullptr;
  return temp;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NONNULL UpdateTopicRequest::_internal_mutable_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.update_mask_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::FieldMask>(GetArena());
    _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(p);
  }
  return _impl_.update_mask_;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NONNULL UpdateTopicRequest::mutable_update_mask()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* _msg = _internal_mutable_update_mask();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.UpdateTopicRequest.update_mask)
  return _msg;
}
inline void UpdateTopicRequest::set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.update_mask_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.UpdateTopicRequest.update_mask)
}

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

// PublishRequest

// string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void PublishRequest::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PublishRequest::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PublishRequest.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PublishRequest::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PublishRequest.topic)
}
inline ::std::string* PROTOBUF_NONNULL PublishRequest::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PublishRequest.topic)
  return _s;
}
inline const ::std::string& PublishRequest::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void PublishRequest::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PublishRequest::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PublishRequest::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PublishRequest.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void PublishRequest::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PublishRequest.topic)
}

// repeated .google.pubsub.v1.PubsubMessage messages = 2 [(.google.api.field_behavior) = REQUIRED];
inline int PublishRequest::_internal_messages_size() const {
  return _internal_messages().size();
}
inline int PublishRequest::messages_size() const {
  return _internal_messages_size();
}
inline void PublishRequest::clear_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.messages_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::PubsubMessage& PublishRequest::messages(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PublishRequest.messages)
  return _internal_messages().Get(index);
}
inline ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL PublishRequest::mutable_messages(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PublishRequest.messages)
  return _internal_mutable_messages()->Mutable(index);
}
inline ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL PublishRequest::add_messages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::pubsub::v1::PubsubMessage* _add =
      _internal_mutable_messages()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.PublishRequest.messages)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>& PublishRequest::messages() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.PublishRequest.messages)
  return _internal_messages();
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>* PROTOBUF_NONNULL
PublishRequest::mutable_messages() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.PublishRequest.messages)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_messages();
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>&
PublishRequest::_internal_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.messages_;
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::PubsubMessage>* PROTOBUF_NONNULL
PublishRequest::_internal_mutable_messages() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.messages_;
}

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

// PublishResponse

// repeated string message_ids = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int PublishResponse::_internal_message_ids_size() const {
  return _internal_message_ids().size();
}
inline int PublishResponse::message_ids_size() const {
  return _internal_message_ids_size();
}
inline void PublishResponse::clear_message_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL PublishResponse::add_message_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_message_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.PublishResponse.message_ids)
  return _s;
}
inline const ::std::string& PublishResponse::message_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PublishResponse.message_ids)
  return _internal_message_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL PublishResponse::mutable_message_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PublishResponse.message_ids)
  return _internal_mutable_message_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void PublishResponse::set_message_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_message_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PublishResponse.message_ids)
}
template <typename Arg_, typename... Args_>
inline void PublishResponse::add_message_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_message_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.PublishResponse.message_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& PublishResponse::message_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.PublishResponse.message_ids)
  return _internal_message_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
PublishResponse::mutable_message_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.PublishResponse.message_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_message_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
PublishResponse::_internal_message_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.message_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
PublishResponse::_internal_mutable_message_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.message_ids_;
}

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

// ListTopicsRequest

// string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ListTopicsRequest::clear_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.project_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListTopicsRequest::project() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicsRequest.project)
  return _internal_project();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicsRequest::set_project(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.project_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicsRequest.project)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicsRequest::mutable_project()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_project();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicsRequest.project)
  return _s;
}
inline const ::std::string& ListTopicsRequest::_internal_project() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.project_.Get();
}
inline void ListTopicsRequest::_internal_set_project(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.project_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicsRequest::_internal_mutable_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.project_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicsRequest::release_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicsRequest.project)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.project_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.project_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicsRequest::set_allocated_project(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.project_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.project_.IsDefault()) {
    _impl_.project_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicsRequest.project)
}

// int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicsRequest::clear_page_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ListTopicsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicsRequest.page_size)
  return _internal_page_size();
}
inline void ListTopicsRequest::set_page_size(::int32_t value) {
  _internal_set_page_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicsRequest.page_size)
}
inline ::int32_t ListTopicsRequest::_internal_page_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_size_;
}
inline void ListTopicsRequest::_internal_set_page_size(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = value;
}

// string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicsRequest::clear_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListTopicsRequest::page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicsRequest.page_token)
  return _internal_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicsRequest::set_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicsRequest.page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicsRequest::mutable_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicsRequest.page_token)
  return _s;
}
inline const ::std::string& ListTopicsRequest::_internal_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_token_.Get();
}
inline void ListTopicsRequest::_internal_set_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicsRequest::_internal_mutable_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicsRequest::release_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicsRequest.page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicsRequest::set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.page_token_.IsDefault()) {
    _impl_.page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicsRequest.page_token)
}

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

// ListTopicsResponse

// repeated .google.pubsub.v1.Topic topics = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int ListTopicsResponse::_internal_topics_size() const {
  return _internal_topics().size();
}
inline int ListTopicsResponse::topics_size() const {
  return _internal_topics_size();
}
inline void ListTopicsResponse::clear_topics() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topics_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::Topic& ListTopicsResponse::topics(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicsResponse.topics)
  return _internal_topics().Get(index);
}
inline ::google::pubsub::v1::Topic* PROTOBUF_NONNULL ListTopicsResponse::mutable_topics(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicsResponse.topics)
  return _internal_mutable_topics()->Mutable(index);
}
inline ::google::pubsub::v1::Topic* PROTOBUF_NONNULL ListTopicsResponse::add_topics()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::pubsub::v1::Topic* _add =
      _internal_mutable_topics()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.ListTopicsResponse.topics)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>& ListTopicsResponse::topics() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.ListTopicsResponse.topics)
  return _internal_topics();
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>* PROTOBUF_NONNULL
ListTopicsResponse::mutable_topics() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.ListTopicsResponse.topics)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_topics();
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>&
ListTopicsResponse::_internal_topics() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topics_;
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Topic>* PROTOBUF_NONNULL
ListTopicsResponse::_internal_mutable_topics() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.topics_;
}

// string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicsResponse::clear_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListTopicsResponse::next_page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicsResponse.next_page_token)
  return _internal_next_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicsResponse::set_next_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.next_page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicsResponse.next_page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicsResponse::mutable_next_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_next_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicsResponse.next_page_token)
  return _s;
}
inline const ::std::string& ListTopicsResponse::_internal_next_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.next_page_token_.Get();
}
inline void ListTopicsResponse::_internal_set_next_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicsResponse::_internal_mutable_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.next_page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicsResponse::release_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicsResponse.next_page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.next_page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicsResponse::set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.next_page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.next_page_token_.IsDefault()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicsResponse.next_page_token)
}

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

// ListTopicSubscriptionsRequest

// string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ListTopicSubscriptionsRequest::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListTopicSubscriptionsRequest::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSubscriptionsRequest.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicSubscriptionsRequest::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSubscriptionsRequest.topic)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsRequest::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSubscriptionsRequest.topic)
  return _s;
}
inline const ::std::string& ListTopicSubscriptionsRequest::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void ListTopicSubscriptionsRequest::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsRequest::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicSubscriptionsRequest::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicSubscriptionsRequest.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicSubscriptionsRequest::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicSubscriptionsRequest.topic)
}

// int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicSubscriptionsRequest::clear_page_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ListTopicSubscriptionsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSubscriptionsRequest.page_size)
  return _internal_page_size();
}
inline void ListTopicSubscriptionsRequest::set_page_size(::int32_t value) {
  _internal_set_page_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSubscriptionsRequest.page_size)
}
inline ::int32_t ListTopicSubscriptionsRequest::_internal_page_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_size_;
}
inline void ListTopicSubscriptionsRequest::_internal_set_page_size(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = value;
}

// string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicSubscriptionsRequest::clear_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListTopicSubscriptionsRequest::page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSubscriptionsRequest.page_token)
  return _internal_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicSubscriptionsRequest::set_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSubscriptionsRequest.page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsRequest::mutable_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSubscriptionsRequest.page_token)
  return _s;
}
inline const ::std::string& ListTopicSubscriptionsRequest::_internal_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_token_.Get();
}
inline void ListTopicSubscriptionsRequest::_internal_set_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsRequest::_internal_mutable_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicSubscriptionsRequest::release_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicSubscriptionsRequest.page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicSubscriptionsRequest::set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.page_token_.IsDefault()) {
    _impl_.page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicSubscriptionsRequest.page_token)
}

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

// ListTopicSubscriptionsResponse

// repeated string subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
inline int ListTopicSubscriptionsResponse::_internal_subscriptions_size() const {
  return _internal_subscriptions().size();
}
inline int ListTopicSubscriptionsResponse::subscriptions_size() const {
  return _internal_subscriptions_size();
}
inline void ListTopicSubscriptionsResponse::clear_subscriptions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscriptions_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsResponse::add_subscriptions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_subscriptions()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
  return _s;
}
inline const ::std::string& ListTopicSubscriptionsResponse::subscriptions(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
  return _internal_subscriptions().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsResponse::mutable_subscriptions(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
  return _internal_mutable_subscriptions()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void ListTopicSubscriptionsResponse::set_subscriptions(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_subscriptions()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
}
template <typename Arg_, typename... Args_>
inline void ListTopicSubscriptionsResponse::add_subscriptions(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_subscriptions(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& ListTopicSubscriptionsResponse::subscriptions()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
  return _internal_subscriptions();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ListTopicSubscriptionsResponse::mutable_subscriptions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.ListTopicSubscriptionsResponse.subscriptions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_subscriptions();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
ListTopicSubscriptionsResponse::_internal_subscriptions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscriptions_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ListTopicSubscriptionsResponse::_internal_mutable_subscriptions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.subscriptions_;
}

// string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicSubscriptionsResponse::clear_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListTopicSubscriptionsResponse::next_page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSubscriptionsResponse.next_page_token)
  return _internal_next_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicSubscriptionsResponse::set_next_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.next_page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSubscriptionsResponse.next_page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsResponse::mutable_next_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_next_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSubscriptionsResponse.next_page_token)
  return _s;
}
inline const ::std::string& ListTopicSubscriptionsResponse::_internal_next_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.next_page_token_.Get();
}
inline void ListTopicSubscriptionsResponse::_internal_set_next_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSubscriptionsResponse::_internal_mutable_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.next_page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicSubscriptionsResponse::release_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicSubscriptionsResponse.next_page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.next_page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicSubscriptionsResponse::set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.next_page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.next_page_token_.IsDefault()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicSubscriptionsResponse.next_page_token)
}

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

// ListTopicSnapshotsRequest

// string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ListTopicSnapshotsRequest::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListTopicSnapshotsRequest::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSnapshotsRequest.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicSnapshotsRequest::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSnapshotsRequest.topic)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsRequest::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSnapshotsRequest.topic)
  return _s;
}
inline const ::std::string& ListTopicSnapshotsRequest::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void ListTopicSnapshotsRequest::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsRequest::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicSnapshotsRequest::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicSnapshotsRequest.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicSnapshotsRequest::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicSnapshotsRequest.topic)
}

// int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicSnapshotsRequest::clear_page_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ListTopicSnapshotsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSnapshotsRequest.page_size)
  return _internal_page_size();
}
inline void ListTopicSnapshotsRequest::set_page_size(::int32_t value) {
  _internal_set_page_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSnapshotsRequest.page_size)
}
inline ::int32_t ListTopicSnapshotsRequest::_internal_page_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_size_;
}
inline void ListTopicSnapshotsRequest::_internal_set_page_size(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = value;
}

// string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicSnapshotsRequest::clear_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListTopicSnapshotsRequest::page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSnapshotsRequest.page_token)
  return _internal_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicSnapshotsRequest::set_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSnapshotsRequest.page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsRequest::mutable_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSnapshotsRequest.page_token)
  return _s;
}
inline const ::std::string& ListTopicSnapshotsRequest::_internal_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_token_.Get();
}
inline void ListTopicSnapshotsRequest::_internal_set_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsRequest::_internal_mutable_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicSnapshotsRequest::release_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicSnapshotsRequest.page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicSnapshotsRequest::set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.page_token_.IsDefault()) {
    _impl_.page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicSnapshotsRequest.page_token)
}

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

// ListTopicSnapshotsResponse

// repeated string snapshots = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int ListTopicSnapshotsResponse::_internal_snapshots_size() const {
  return _internal_snapshots().size();
}
inline int ListTopicSnapshotsResponse::snapshots_size() const {
  return _internal_snapshots_size();
}
inline void ListTopicSnapshotsResponse::clear_snapshots() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.snapshots_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsResponse::add_snapshots()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_snapshots()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
  return _s;
}
inline const ::std::string& ListTopicSnapshotsResponse::snapshots(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
  return _internal_snapshots().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsResponse::mutable_snapshots(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
  return _internal_mutable_snapshots()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void ListTopicSnapshotsResponse::set_snapshots(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_snapshots()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
}
template <typename Arg_, typename... Args_>
inline void ListTopicSnapshotsResponse::add_snapshots(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_snapshots(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& ListTopicSnapshotsResponse::snapshots()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
  return _internal_snapshots();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ListTopicSnapshotsResponse::mutable_snapshots() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.ListTopicSnapshotsResponse.snapshots)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_snapshots();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
ListTopicSnapshotsResponse::_internal_snapshots() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.snapshots_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ListTopicSnapshotsResponse::_internal_mutable_snapshots() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.snapshots_;
}

// string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListTopicSnapshotsResponse::clear_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListTopicSnapshotsResponse::next_page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListTopicSnapshotsResponse.next_page_token)
  return _internal_next_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListTopicSnapshotsResponse::set_next_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.next_page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListTopicSnapshotsResponse.next_page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsResponse::mutable_next_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_next_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListTopicSnapshotsResponse.next_page_token)
  return _s;
}
inline const ::std::string& ListTopicSnapshotsResponse::_internal_next_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.next_page_token_.Get();
}
inline void ListTopicSnapshotsResponse::_internal_set_next_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListTopicSnapshotsResponse::_internal_mutable_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.next_page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListTopicSnapshotsResponse::release_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListTopicSnapshotsResponse.next_page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.next_page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListTopicSnapshotsResponse::set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.next_page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.next_page_token_.IsDefault()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListTopicSnapshotsResponse.next_page_token)
}

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

// DeleteTopicRequest

// string topic = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void DeleteTopicRequest::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteTopicRequest::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.DeleteTopicRequest.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteTopicRequest::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.DeleteTopicRequest.topic)
}
inline ::std::string* PROTOBUF_NONNULL DeleteTopicRequest::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.DeleteTopicRequest.topic)
  return _s;
}
inline const ::std::string& DeleteTopicRequest::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void DeleteTopicRequest::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteTopicRequest::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteTopicRequest::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.DeleteTopicRequest.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void DeleteTopicRequest::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.DeleteTopicRequest.topic)
}

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

// DetachSubscriptionRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void DetachSubscriptionRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DetachSubscriptionRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.DetachSubscriptionRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DetachSubscriptionRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.DetachSubscriptionRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL DetachSubscriptionRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.DetachSubscriptionRequest.subscription)
  return _s;
}
inline const ::std::string& DetachSubscriptionRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void DetachSubscriptionRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DetachSubscriptionRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DetachSubscriptionRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.DetachSubscriptionRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void DetachSubscriptionRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.DetachSubscriptionRequest.subscription)
}

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

// DetachSubscriptionResponse

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

// Subscription_AnalyticsHubSubscriptionInfo

// string listing = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription_AnalyticsHubSubscriptionInfo::clear_listing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.listing_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Subscription_AnalyticsHubSubscriptionInfo::listing() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.listing)
  return _internal_listing();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Subscription_AnalyticsHubSubscriptionInfo::set_listing(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.listing_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.listing)
}
inline ::std::string* PROTOBUF_NONNULL Subscription_AnalyticsHubSubscriptionInfo::mutable_listing()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_listing();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.listing)
  return _s;
}
inline const ::std::string& Subscription_AnalyticsHubSubscriptionInfo::_internal_listing() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.listing_.Get();
}
inline void Subscription_AnalyticsHubSubscriptionInfo::_internal_set_listing(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.listing_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Subscription_AnalyticsHubSubscriptionInfo::_internal_mutable_listing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.listing_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Subscription_AnalyticsHubSubscriptionInfo::release_listing() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.listing)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.listing_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.listing_.Set("", GetArena());
  }
  return released;
}
inline void Subscription_AnalyticsHubSubscriptionInfo::set_allocated_listing(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.listing_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.listing_.IsDefault()) {
    _impl_.listing_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.listing)
}

// string subscription = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription_AnalyticsHubSubscriptionInfo::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Subscription_AnalyticsHubSubscriptionInfo::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Subscription_AnalyticsHubSubscriptionInfo::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.subscription)
}
inline ::std::string* PROTOBUF_NONNULL Subscription_AnalyticsHubSubscriptionInfo::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.subscription)
  return _s;
}
inline const ::std::string& Subscription_AnalyticsHubSubscriptionInfo::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void Subscription_AnalyticsHubSubscriptionInfo::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Subscription_AnalyticsHubSubscriptionInfo::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Subscription_AnalyticsHubSubscriptionInfo::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void Subscription_AnalyticsHubSubscriptionInfo::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo.subscription)
}

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

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

// Subscription

// string name = 1 [(.google.api.field_behavior) = REQUIRED];
inline void Subscription::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Subscription::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Subscription::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.name)
}
inline ::std::string* PROTOBUF_NONNULL Subscription::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.name)
  return _s;
}
inline const ::std::string& Subscription::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Subscription::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Subscription::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Subscription::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Subscription::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.name)
}

// string topic = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void Subscription::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Subscription::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Subscription::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.topic)
}
inline ::std::string* PROTOBUF_NONNULL Subscription::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.topic)
  return _s;
}
inline const ::std::string& Subscription::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void Subscription::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Subscription::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Subscription::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void Subscription::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.topic)
}

// .google.pubsub.v1.PushConfig push_config = 4 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_push_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.push_config_ != nullptr);
  return value;
}
inline void Subscription::clear_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.push_config_ != nullptr) _impl_.push_config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::google::pubsub::v1::PushConfig& Subscription::_internal_push_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::PushConfig* p = _impl_.push_config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PushConfig>(&::google::pubsub::v1::PushConfig_globals_);
}
inline const ::google::pubsub::v1::PushConfig& Subscription::push_config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.push_config)
  return _internal_push_config();
}
inline void Subscription::unsafe_arena_set_allocated_push_config(
    ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.push_config_);
  }
  _impl_.push_config_ = reinterpret_cast<::google::pubsub::v1::PushConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.push_config)
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE Subscription::release_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::PushConfig* released = _impl_.push_config_;
  _impl_.push_config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.push_config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::PushConfig* temp = _impl_.push_config_;
  _impl_.push_config_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL Subscription::_internal_mutable_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.push_config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PushConfig>(GetArena());
    _impl_.push_config_ = reinterpret_cast<::google::pubsub::v1::PushConfig*>(p);
  }
  return _impl_.push_config_;
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL Subscription::mutable_push_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::PushConfig* _msg = _internal_mutable_push_config();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.push_config)
  return _msg;
}
inline void Subscription::set_allocated_push_config(::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.push_config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.push_config_ = reinterpret_cast<::google::pubsub::v1::PushConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.push_config)
}

// .google.pubsub.v1.BigQueryConfig bigquery_config = 18 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_bigquery_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000200U);
  PROTOBUF_ASSUME(!value || _impl_.bigquery_config_ != nullptr);
  return value;
}
inline void Subscription::clear_bigquery_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bigquery_config_ != nullptr) _impl_.bigquery_config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
}
inline const ::google::pubsub::v1::BigQueryConfig& Subscription::_internal_bigquery_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::BigQueryConfig* p = _impl_.bigquery_config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::BigQueryConfig>(&::google::pubsub::v1::BigQueryConfig_globals_);
}
inline const ::google::pubsub::v1::BigQueryConfig& Subscription::bigquery_config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.bigquery_config)
  return _internal_bigquery_config();
}
inline void Subscription::unsafe_arena_set_allocated_bigquery_config(
    ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bigquery_config_);
  }
  _impl_.bigquery_config_ = reinterpret_cast<::google::pubsub::v1::BigQueryConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.bigquery_config)
}
inline ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE Subscription::release_bigquery_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::google::pubsub::v1::BigQueryConfig* released = _impl_.bigquery_config_;
  _impl_.bigquery_config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_bigquery_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.bigquery_config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::google::pubsub::v1::BigQueryConfig* temp = _impl_.bigquery_config_;
  _impl_.bigquery_config_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NONNULL Subscription::_internal_mutable_bigquery_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.bigquery_config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::BigQueryConfig>(GetArena());
    _impl_.bigquery_config_ = reinterpret_cast<::google::pubsub::v1::BigQueryConfig*>(p);
  }
  return _impl_.bigquery_config_;
}
inline ::google::pubsub::v1::BigQueryConfig* PROTOBUF_NONNULL Subscription::mutable_bigquery_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  ::google::pubsub::v1::BigQueryConfig* _msg = _internal_mutable_bigquery_config();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.bigquery_config)
  return _msg;
}
inline void Subscription::set_allocated_bigquery_config(::google::pubsub::v1::BigQueryConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.bigquery_config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000200U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000200U);
  }

  _impl_.bigquery_config_ = reinterpret_cast<::google::pubsub::v1::BigQueryConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.bigquery_config)
}

// .google.pubsub.v1.CloudStorageConfig cloud_storage_config = 22 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_cloud_storage_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000400U);
  PROTOBUF_ASSUME(!value || _impl_.cloud_storage_config_ != nullptr);
  return value;
}
inline void Subscription::clear_cloud_storage_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cloud_storage_config_ != nullptr) _impl_.cloud_storage_config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
}
inline const ::google::pubsub::v1::CloudStorageConfig& Subscription::_internal_cloud_storage_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::CloudStorageConfig* p = _impl_.cloud_storage_config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::CloudStorageConfig>(&::google::pubsub::v1::CloudStorageConfig_globals_);
}
inline const ::google::pubsub::v1::CloudStorageConfig& Subscription::cloud_storage_config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.cloud_storage_config)
  return _internal_cloud_storage_config();
}
inline void Subscription::unsafe_arena_set_allocated_cloud_storage_config(
    ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cloud_storage_config_);
  }
  _impl_.cloud_storage_config_ = reinterpret_cast<::google::pubsub::v1::CloudStorageConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.cloud_storage_config)
}
inline ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE Subscription::release_cloud_storage_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::google::pubsub::v1::CloudStorageConfig* released = _impl_.cloud_storage_config_;
  _impl_.cloud_storage_config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_cloud_storage_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.cloud_storage_config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::google::pubsub::v1::CloudStorageConfig* temp = _impl_.cloud_storage_config_;
  _impl_.cloud_storage_config_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NONNULL Subscription::_internal_mutable_cloud_storage_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.cloud_storage_config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::CloudStorageConfig>(GetArena());
    _impl_.cloud_storage_config_ = reinterpret_cast<::google::pubsub::v1::CloudStorageConfig*>(p);
  }
  return _impl_.cloud_storage_config_;
}
inline ::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NONNULL Subscription::mutable_cloud_storage_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  ::google::pubsub::v1::CloudStorageConfig* _msg = _internal_mutable_cloud_storage_config();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.cloud_storage_config)
  return _msg;
}
inline void Subscription::set_allocated_cloud_storage_config(::google::pubsub::v1::CloudStorageConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.cloud_storage_config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000400U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000400U);
  }

  _impl_.cloud_storage_config_ = reinterpret_cast<::google::pubsub::v1::CloudStorageConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.cloud_storage_config)
}

// int32 ack_deadline_seconds = 5 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription::clear_ack_deadline_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_deadline_seconds_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00001000U);
}
inline ::int32_t Subscription::ack_deadline_seconds() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.ack_deadline_seconds)
  return _internal_ack_deadline_seconds();
}
inline void Subscription::set_ack_deadline_seconds(::int32_t value) {
  _internal_set_ack_deadline_seconds(value);
  SetHasBit(_impl_._has_bits_[0], 0x00001000U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.ack_deadline_seconds)
}
inline ::int32_t Subscription::_internal_ack_deadline_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_deadline_seconds_;
}
inline void Subscription::_internal_set_ack_deadline_seconds(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_deadline_seconds_ = value;
}

// bool retain_acked_messages = 7 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription::clear_retain_acked_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.retain_acked_messages_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00002000U);
}
inline bool Subscription::retain_acked_messages() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.retain_acked_messages)
  return _internal_retain_acked_messages();
}
inline void Subscription::set_retain_acked_messages(bool value) {
  _internal_set_retain_acked_messages(value);
  SetHasBit(_impl_._has_bits_[0], 0x00002000U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.retain_acked_messages)
}
inline bool Subscription::_internal_retain_acked_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.retain_acked_messages_;
}
inline void Subscription::_internal_set_retain_acked_messages(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.retain_acked_messages_ = value;
}

// .google.protobuf.Duration message_retention_duration = 8 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_message_retention_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000010U);
  PROTOBUF_ASSUME(!value || _impl_.message_retention_duration_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& Subscription::_internal_message_retention_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.message_retention_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& Subscription::message_retention_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.message_retention_duration)
  return _internal_message_retention_duration();
}
inline void Subscription::unsafe_arena_set_allocated_message_retention_duration(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_retention_duration_);
  }
  _impl_.message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.message_retention_duration)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE Subscription::release_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::google::protobuf::Duration* released = _impl_.message_retention_duration_;
  _impl_.message_retention_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.message_retention_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::google::protobuf::Duration* temp = _impl_.message_retention_duration_;
  _impl_.message_retention_duration_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL Subscription::_internal_mutable_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.message_retention_duration_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.message_retention_duration_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL Subscription::mutable_message_retention_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::google::protobuf::Duration* _msg = _internal_mutable_message_retention_duration();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.message_retention_duration)
  return _msg;
}
inline void Subscription::set_allocated_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_retention_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }

  _impl_.message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.message_retention_duration)
}

// map<string, string> labels = 9 [(.google.api.field_behavior) = OPTIONAL];
inline int Subscription::_internal_labels_size() const {
  return _internal_labels().size();
}
inline int Subscription::labels_size() const {
  return _internal_labels_size();
}
inline void Subscription::clear_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.labels_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00040000U);
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& Subscription::_internal_labels() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.labels_.GetMap();
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& Subscription::labels() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:google.pubsub.v1.Subscription.labels)
  return _internal_labels();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL Subscription::_internal_mutable_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.labels_.MutableMap();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL Subscription::mutable_labels()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00040000U);
  // @@protoc_insertion_point(field_mutable_map:google.pubsub.v1.Subscription.labels)
  return _internal_mutable_labels();
}

// bool enable_message_ordering = 10 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription::clear_enable_message_ordering() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_message_ordering_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00004000U);
}
inline bool Subscription::enable_message_ordering() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.enable_message_ordering)
  return _internal_enable_message_ordering();
}
inline void Subscription::set_enable_message_ordering(bool value) {
  _internal_set_enable_message_ordering(value);
  SetHasBit(_impl_._has_bits_[0], 0x00004000U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.enable_message_ordering)
}
inline bool Subscription::_internal_enable_message_ordering() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_message_ordering_;
}
inline void Subscription::_internal_set_enable_message_ordering(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_message_ordering_ = value;
}

// .google.pubsub.v1.ExpirationPolicy expiration_policy = 11 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_expiration_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.expiration_policy_ != nullptr);
  return value;
}
inline void Subscription::clear_expiration_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.expiration_policy_ != nullptr) _impl_.expiration_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline const ::google::pubsub::v1::ExpirationPolicy& Subscription::_internal_expiration_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::ExpirationPolicy* p = _impl_.expiration_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::ExpirationPolicy>(&::google::pubsub::v1::ExpirationPolicy_globals_);
}
inline const ::google::pubsub::v1::ExpirationPolicy& Subscription::expiration_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.expiration_policy)
  return _internal_expiration_policy();
}
inline void Subscription::unsafe_arena_set_allocated_expiration_policy(
    ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.expiration_policy_);
  }
  _impl_.expiration_policy_ = reinterpret_cast<::google::pubsub::v1::ExpirationPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.expiration_policy)
}
inline ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE Subscription::release_expiration_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::pubsub::v1::ExpirationPolicy* released = _impl_.expiration_policy_;
  _impl_.expiration_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_expiration_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.expiration_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::pubsub::v1::ExpirationPolicy* temp = _impl_.expiration_policy_;
  _impl_.expiration_policy_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NONNULL Subscription::_internal_mutable_expiration_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.expiration_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::ExpirationPolicy>(GetArena());
    _impl_.expiration_policy_ = reinterpret_cast<::google::pubsub::v1::ExpirationPolicy*>(p);
  }
  return _impl_.expiration_policy_;
}
inline ::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NONNULL Subscription::mutable_expiration_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::pubsub::v1::ExpirationPolicy* _msg = _internal_mutable_expiration_policy();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.expiration_policy)
  return _msg;
}
inline void Subscription::set_allocated_expiration_policy(::google::pubsub::v1::ExpirationPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.expiration_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.expiration_policy_ = reinterpret_cast<::google::pubsub::v1::ExpirationPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.expiration_policy)
}

// string filter = 12 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription::clear_filter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filter_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& Subscription::filter() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.filter)
  return _internal_filter();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Subscription::set_filter(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.filter_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.filter)
}
inline ::std::string* PROTOBUF_NONNULL Subscription::mutable_filter()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_filter();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.filter)
  return _s;
}
inline const ::std::string& Subscription::_internal_filter() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filter_.Get();
}
inline void Subscription::_internal_set_filter(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filter_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Subscription::_internal_mutable_filter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.filter_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Subscription::release_filter() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.filter)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.filter_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.filter_.Set("", GetArena());
  }
  return released;
}
inline void Subscription::set_allocated_filter(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.filter_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.filter_.IsDefault()) {
    _impl_.filter_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.filter)
}

// .google.pubsub.v1.DeadLetterPolicy dead_letter_policy = 13 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_dead_letter_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000040U);
  PROTOBUF_ASSUME(!value || _impl_.dead_letter_policy_ != nullptr);
  return value;
}
inline void Subscription::clear_dead_letter_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.dead_letter_policy_ != nullptr) _impl_.dead_letter_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline const ::google::pubsub::v1::DeadLetterPolicy& Subscription::_internal_dead_letter_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::DeadLetterPolicy* p = _impl_.dead_letter_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::DeadLetterPolicy>(&::google::pubsub::v1::DeadLetterPolicy_globals_);
}
inline const ::google::pubsub::v1::DeadLetterPolicy& Subscription::dead_letter_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.dead_letter_policy)
  return _internal_dead_letter_policy();
}
inline void Subscription::unsafe_arena_set_allocated_dead_letter_policy(
    ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.dead_letter_policy_);
  }
  _impl_.dead_letter_policy_ = reinterpret_cast<::google::pubsub::v1::DeadLetterPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.dead_letter_policy)
}
inline ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE Subscription::release_dead_letter_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::google::pubsub::v1::DeadLetterPolicy* released = _impl_.dead_letter_policy_;
  _impl_.dead_letter_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_dead_letter_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.dead_letter_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::google::pubsub::v1::DeadLetterPolicy* temp = _impl_.dead_letter_policy_;
  _impl_.dead_letter_policy_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NONNULL Subscription::_internal_mutable_dead_letter_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.dead_letter_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::DeadLetterPolicy>(GetArena());
    _impl_.dead_letter_policy_ = reinterpret_cast<::google::pubsub::v1::DeadLetterPolicy*>(p);
  }
  return _impl_.dead_letter_policy_;
}
inline ::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NONNULL Subscription::mutable_dead_letter_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  ::google::pubsub::v1::DeadLetterPolicy* _msg = _internal_mutable_dead_letter_policy();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.dead_letter_policy)
  return _msg;
}
inline void Subscription::set_allocated_dead_letter_policy(::google::pubsub::v1::DeadLetterPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.dead_letter_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
  }

  _impl_.dead_letter_policy_ = reinterpret_cast<::google::pubsub::v1::DeadLetterPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.dead_letter_policy)
}

// .google.pubsub.v1.RetryPolicy retry_policy = 14 [(.google.api.field_behavior) = OPTIONAL];
inline bool Subscription::has_retry_policy() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000080U);
  PROTOBUF_ASSUME(!value || _impl_.retry_policy_ != nullptr);
  return value;
}
inline void Subscription::clear_retry_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.retry_policy_ != nullptr) _impl_.retry_policy_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline const ::google::pubsub::v1::RetryPolicy& Subscription::_internal_retry_policy() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::RetryPolicy* p = _impl_.retry_policy_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::RetryPolicy>(&::google::pubsub::v1::RetryPolicy_globals_);
}
inline const ::google::pubsub::v1::RetryPolicy& Subscription::retry_policy() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.retry_policy)
  return _internal_retry_policy();
}
inline void Subscription::unsafe_arena_set_allocated_retry_policy(
    ::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.retry_policy_);
  }
  _impl_.retry_policy_ = reinterpret_cast<::google::pubsub::v1::RetryPolicy*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.retry_policy)
}
inline ::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE Subscription::release_retry_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::google::pubsub::v1::RetryPolicy* released = _impl_.retry_policy_;
  _impl_.retry_policy_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_retry_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.retry_policy)

  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::google::pubsub::v1::RetryPolicy* temp = _impl_.retry_policy_;
  _impl_.retry_policy_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::RetryPolicy* PROTOBUF_NONNULL Subscription::_internal_mutable_retry_policy() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.retry_policy_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::RetryPolicy>(GetArena());
    _impl_.retry_policy_ = reinterpret_cast<::google::pubsub::v1::RetryPolicy*>(p);
  }
  return _impl_.retry_policy_;
}
inline ::google::pubsub::v1::RetryPolicy* PROTOBUF_NONNULL Subscription::mutable_retry_policy()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  ::google::pubsub::v1::RetryPolicy* _msg = _internal_mutable_retry_policy();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.retry_policy)
  return _msg;
}
inline void Subscription::set_allocated_retry_policy(::google::pubsub::v1::RetryPolicy* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.retry_policy_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
  }

  _impl_.retry_policy_ = reinterpret_cast<::google::pubsub::v1::RetryPolicy*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.retry_policy)
}

// bool detached = 15 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription::clear_detached() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.detached_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00008000U);
}
inline bool Subscription::detached() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.detached)
  return _internal_detached();
}
inline void Subscription::set_detached(bool value) {
  _internal_set_detached(value);
  SetHasBit(_impl_._has_bits_[0], 0x00008000U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.detached)
}
inline bool Subscription::_internal_detached() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.detached_;
}
inline void Subscription::_internal_set_detached(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.detached_ = value;
}

// bool enable_exactly_once_delivery = 16 [(.google.api.field_behavior) = OPTIONAL];
inline void Subscription::clear_enable_exactly_once_delivery() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_exactly_once_delivery_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00010000U);
}
inline bool Subscription::enable_exactly_once_delivery() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.enable_exactly_once_delivery)
  return _internal_enable_exactly_once_delivery();
}
inline void Subscription::set_enable_exactly_once_delivery(bool value) {
  _internal_set_enable_exactly_once_delivery(value);
  SetHasBit(_impl_._has_bits_[0], 0x00010000U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.enable_exactly_once_delivery)
}
inline bool Subscription::_internal_enable_exactly_once_delivery() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.enable_exactly_once_delivery_;
}
inline void Subscription::_internal_set_enable_exactly_once_delivery(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.enable_exactly_once_delivery_ = value;
}

// .google.protobuf.Duration topic_message_retention_duration = 17 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline bool Subscription::has_topic_message_retention_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000100U);
  PROTOBUF_ASSUME(!value || _impl_.topic_message_retention_duration_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& Subscription::_internal_topic_message_retention_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.topic_message_retention_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& Subscription::topic_message_retention_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.topic_message_retention_duration)
  return _internal_topic_message_retention_duration();
}
inline void Subscription::unsafe_arena_set_allocated_topic_message_retention_duration(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.topic_message_retention_duration_);
  }
  _impl_.topic_message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.topic_message_retention_duration)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE Subscription::release_topic_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::google::protobuf::Duration* released = _impl_.topic_message_retention_duration_;
  _impl_.topic_message_retention_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_topic_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.topic_message_retention_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::google::protobuf::Duration* temp = _impl_.topic_message_retention_duration_;
  _impl_.topic_message_retention_duration_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL Subscription::_internal_mutable_topic_message_retention_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.topic_message_retention_duration_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.topic_message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.topic_message_retention_duration_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL Subscription::mutable_topic_message_retention_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  ::google::protobuf::Duration* _msg = _internal_mutable_topic_message_retention_duration();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.topic_message_retention_duration)
  return _msg;
}
inline void Subscription::set_allocated_topic_message_retention_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.topic_message_retention_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
  }

  _impl_.topic_message_retention_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.topic_message_retention_duration)
}

// .google.pubsub.v1.Subscription.State state = 19 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline void Subscription::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00020000U);
}
inline ::google::pubsub::v1::Subscription_State Subscription::state() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.state)
  return _internal_state();
}
inline void Subscription::set_state(::google::pubsub::v1::Subscription_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00020000U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Subscription.state)
}
inline ::google::pubsub::v1::Subscription_State Subscription::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::Subscription_State>(_impl_.state_);
}
inline void Subscription::_internal_set_state(::google::pubsub::v1::Subscription_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// .google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo analytics_hub_subscription_info = 23 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline bool Subscription::has_analytics_hub_subscription_info() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000800U);
  PROTOBUF_ASSUME(!value || _impl_.analytics_hub_subscription_info_ != nullptr);
  return value;
}
inline void Subscription::clear_analytics_hub_subscription_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.analytics_hub_subscription_info_ != nullptr) _impl_.analytics_hub_subscription_info_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
}
inline const ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo& Subscription::_internal_analytics_hub_subscription_info() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* p = _impl_.analytics_hub_subscription_info_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo>(&::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo_globals_);
}
inline const ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo& Subscription::analytics_hub_subscription_info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Subscription.analytics_hub_subscription_info)
  return _internal_analytics_hub_subscription_info();
}
inline void Subscription::unsafe_arena_set_allocated_analytics_hub_subscription_info(
    ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.analytics_hub_subscription_info_);
  }
  _impl_.analytics_hub_subscription_info_ = reinterpret_cast<::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Subscription.analytics_hub_subscription_info)
}
inline ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE Subscription::release_analytics_hub_subscription_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* released = _impl_.analytics_hub_subscription_info_;
  _impl_.analytics_hub_subscription_info_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE Subscription::unsafe_arena_release_analytics_hub_subscription_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Subscription.analytics_hub_subscription_info)

  ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* temp = _impl_.analytics_hub_subscription_info_;
  _impl_.analytics_hub_subscription_info_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL Subscription::_internal_mutable_analytics_hub_subscription_info() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.analytics_hub_subscription_info_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo>(GetArena());
    _impl_.analytics_hub_subscription_info_ = reinterpret_cast<::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo*>(p);
  }
  return _impl_.analytics_hub_subscription_info_;
}
inline ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NONNULL Subscription::mutable_analytics_hub_subscription_info()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  ::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* _msg = _internal_mutable_analytics_hub_subscription_info();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Subscription.analytics_hub_subscription_info)
  return _msg;
}
inline void Subscription::set_allocated_analytics_hub_subscription_info(::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.analytics_hub_subscription_info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000800U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000800U);
  }

  _impl_.analytics_hub_subscription_info_ = reinterpret_cast<::google::pubsub::v1::Subscription_AnalyticsHubSubscriptionInfo*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Subscription.analytics_hub_subscription_info)
}

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

// RetryPolicy

// .google.protobuf.Duration minimum_backoff = 1 [(.google.api.field_behavior) = OPTIONAL];
inline bool RetryPolicy::has_minimum_backoff() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.minimum_backoff_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& RetryPolicy::_internal_minimum_backoff() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.minimum_backoff_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& RetryPolicy::minimum_backoff() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.RetryPolicy.minimum_backoff)
  return _internal_minimum_backoff();
}
inline void RetryPolicy::unsafe_arena_set_allocated_minimum_backoff(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_backoff_);
  }
  _impl_.minimum_backoff_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.RetryPolicy.minimum_backoff)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE RetryPolicy::release_minimum_backoff() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Duration* released = _impl_.minimum_backoff_;
  _impl_.minimum_backoff_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE RetryPolicy::unsafe_arena_release_minimum_backoff() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.RetryPolicy.minimum_backoff)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Duration* temp = _impl_.minimum_backoff_;
  _impl_.minimum_backoff_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL RetryPolicy::_internal_mutable_minimum_backoff() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.minimum_backoff_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.minimum_backoff_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.minimum_backoff_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL RetryPolicy::mutable_minimum_backoff()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Duration* _msg = _internal_mutable_minimum_backoff();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.RetryPolicy.minimum_backoff)
  return _msg;
}
inline void RetryPolicy::set_allocated_minimum_backoff(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.minimum_backoff_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.minimum_backoff_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.RetryPolicy.minimum_backoff)
}

// .google.protobuf.Duration maximum_backoff = 2 [(.google.api.field_behavior) = OPTIONAL];
inline bool RetryPolicy::has_maximum_backoff() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.maximum_backoff_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& RetryPolicy::_internal_maximum_backoff() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.maximum_backoff_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& RetryPolicy::maximum_backoff() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.RetryPolicy.maximum_backoff)
  return _internal_maximum_backoff();
}
inline void RetryPolicy::unsafe_arena_set_allocated_maximum_backoff(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.maximum_backoff_);
  }
  _impl_.maximum_backoff_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.RetryPolicy.maximum_backoff)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE RetryPolicy::release_maximum_backoff() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Duration* released = _impl_.maximum_backoff_;
  _impl_.maximum_backoff_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE RetryPolicy::unsafe_arena_release_maximum_backoff() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.RetryPolicy.maximum_backoff)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Duration* temp = _impl_.maximum_backoff_;
  _impl_.maximum_backoff_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL RetryPolicy::_internal_mutable_maximum_backoff() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.maximum_backoff_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.maximum_backoff_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.maximum_backoff_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL RetryPolicy::mutable_maximum_backoff()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::Duration* _msg = _internal_mutable_maximum_backoff();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.RetryPolicy.maximum_backoff)
  return _msg;
}
inline void RetryPolicy::set_allocated_maximum_backoff(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.maximum_backoff_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.maximum_backoff_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.RetryPolicy.maximum_backoff)
}

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

// DeadLetterPolicy

// string dead_letter_topic = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void DeadLetterPolicy::clear_dead_letter_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dead_letter_topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeadLetterPolicy::dead_letter_topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.DeadLetterPolicy.dead_letter_topic)
  return _internal_dead_letter_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeadLetterPolicy::set_dead_letter_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.dead_letter_topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.DeadLetterPolicy.dead_letter_topic)
}
inline ::std::string* PROTOBUF_NONNULL DeadLetterPolicy::mutable_dead_letter_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_dead_letter_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.DeadLetterPolicy.dead_letter_topic)
  return _s;
}
inline const ::std::string& DeadLetterPolicy::_internal_dead_letter_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.dead_letter_topic_.Get();
}
inline void DeadLetterPolicy::_internal_set_dead_letter_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.dead_letter_topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeadLetterPolicy::_internal_mutable_dead_letter_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.dead_letter_topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeadLetterPolicy::release_dead_letter_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.DeadLetterPolicy.dead_letter_topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.dead_letter_topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.dead_letter_topic_.Set("", GetArena());
  }
  return released;
}
inline void DeadLetterPolicy::set_allocated_dead_letter_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.dead_letter_topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.dead_letter_topic_.IsDefault()) {
    _impl_.dead_letter_topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.DeadLetterPolicy.dead_letter_topic)
}

// int32 max_delivery_attempts = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void DeadLetterPolicy::clear_max_delivery_attempts() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_delivery_attempts_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int32_t DeadLetterPolicy::max_delivery_attempts() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.DeadLetterPolicy.max_delivery_attempts)
  return _internal_max_delivery_attempts();
}
inline void DeadLetterPolicy::set_max_delivery_attempts(::int32_t value) {
  _internal_set_max_delivery_attempts(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.DeadLetterPolicy.max_delivery_attempts)
}
inline ::int32_t DeadLetterPolicy::_internal_max_delivery_attempts() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_delivery_attempts_;
}
inline void DeadLetterPolicy::_internal_set_max_delivery_attempts(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_delivery_attempts_ = value;
}

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

// ExpirationPolicy

// .google.protobuf.Duration ttl = 1 [(.google.api.field_behavior) = OPTIONAL];
inline bool ExpirationPolicy::has_ttl() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.ttl_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& ExpirationPolicy::_internal_ttl() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.ttl_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& ExpirationPolicy::ttl() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ExpirationPolicy.ttl)
  return _internal_ttl();
}
inline void ExpirationPolicy::unsafe_arena_set_allocated_ttl(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ttl_);
  }
  _impl_.ttl_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.ExpirationPolicy.ttl)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE ExpirationPolicy::release_ttl() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Duration* released = _impl_.ttl_;
  _impl_.ttl_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE ExpirationPolicy::unsafe_arena_release_ttl() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ExpirationPolicy.ttl)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Duration* temp = _impl_.ttl_;
  _impl_.ttl_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL ExpirationPolicy::_internal_mutable_ttl() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.ttl_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.ttl_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.ttl_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL ExpirationPolicy::mutable_ttl()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::protobuf::Duration* _msg = _internal_mutable_ttl();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ExpirationPolicy.ttl)
  return _msg;
}
inline void ExpirationPolicy::set_allocated_ttl(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.ttl_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.ttl_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ExpirationPolicy.ttl)
}

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

// PushConfig_OidcToken

// string service_account_email = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void PushConfig_OidcToken::clear_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_account_email_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PushConfig_OidcToken::service_account_email() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.OidcToken.service_account_email)
  return _internal_service_account_email();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PushConfig_OidcToken::set_service_account_email(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.service_account_email_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PushConfig.OidcToken.service_account_email)
}
inline ::std::string* PROTOBUF_NONNULL PushConfig_OidcToken::mutable_service_account_email()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_service_account_email();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PushConfig.OidcToken.service_account_email)
  return _s;
}
inline const ::std::string& PushConfig_OidcToken::_internal_service_account_email() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_account_email_.Get();
}
inline void PushConfig_OidcToken::_internal_set_service_account_email(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_account_email_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PushConfig_OidcToken::_internal_mutable_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.service_account_email_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PushConfig_OidcToken::release_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PushConfig.OidcToken.service_account_email)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.service_account_email_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.service_account_email_.Set("", GetArena());
  }
  return released;
}
inline void PushConfig_OidcToken::set_allocated_service_account_email(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.service_account_email_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.service_account_email_.IsDefault()) {
    _impl_.service_account_email_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PushConfig.OidcToken.service_account_email)
}

// string audience = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void PushConfig_OidcToken::clear_audience() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.audience_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& PushConfig_OidcToken::audience() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.OidcToken.audience)
  return _internal_audience();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PushConfig_OidcToken::set_audience(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.audience_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PushConfig.OidcToken.audience)
}
inline ::std::string* PROTOBUF_NONNULL PushConfig_OidcToken::mutable_audience()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_audience();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PushConfig.OidcToken.audience)
  return _s;
}
inline const ::std::string& PushConfig_OidcToken::_internal_audience() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.audience_.Get();
}
inline void PushConfig_OidcToken::_internal_set_audience(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.audience_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PushConfig_OidcToken::_internal_mutable_audience() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.audience_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PushConfig_OidcToken::release_audience() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PushConfig.OidcToken.audience)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.audience_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.audience_.Set("", GetArena());
  }
  return released;
}
inline void PushConfig_OidcToken::set_allocated_audience(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.audience_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.audience_.IsDefault()) {
    _impl_.audience_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PushConfig.OidcToken.audience)
}

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

// PushConfig_PubsubWrapper

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

// PushConfig_NoWrapper

// bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void PushConfig_NoWrapper::clear_write_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.write_metadata_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool PushConfig_NoWrapper::write_metadata() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.NoWrapper.write_metadata)
  return _internal_write_metadata();
}
inline void PushConfig_NoWrapper::set_write_metadata(bool value) {
  _internal_set_write_metadata(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PushConfig.NoWrapper.write_metadata)
}
inline bool PushConfig_NoWrapper::_internal_write_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.write_metadata_;
}
inline void PushConfig_NoWrapper::_internal_set_write_metadata(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.write_metadata_ = value;
}

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

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

// PushConfig

// string push_endpoint = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void PushConfig::clear_push_endpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.push_endpoint_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PushConfig::push_endpoint() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.push_endpoint)
  return _internal_push_endpoint();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PushConfig::set_push_endpoint(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.push_endpoint_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PushConfig.push_endpoint)
}
inline ::std::string* PROTOBUF_NONNULL PushConfig::mutable_push_endpoint()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_push_endpoint();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PushConfig.push_endpoint)
  return _s;
}
inline const ::std::string& PushConfig::_internal_push_endpoint() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.push_endpoint_.Get();
}
inline void PushConfig::_internal_set_push_endpoint(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.push_endpoint_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PushConfig::_internal_mutable_push_endpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.push_endpoint_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PushConfig::release_push_endpoint() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PushConfig.push_endpoint)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.push_endpoint_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.push_endpoint_.Set("", GetArena());
  }
  return released;
}
inline void PushConfig::set_allocated_push_endpoint(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.push_endpoint_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.push_endpoint_.IsDefault()) {
    _impl_.push_endpoint_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PushConfig.push_endpoint)
}

// map<string, string> attributes = 2 [(.google.api.field_behavior) = OPTIONAL];
inline int PushConfig::_internal_attributes_size() const {
  return _internal_attributes().size();
}
inline int PushConfig::attributes_size() const {
  return _internal_attributes_size();
}
inline void PushConfig::clear_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.attributes_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& PushConfig::_internal_attributes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.attributes_.GetMap();
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& PushConfig::attributes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:google.pubsub.v1.PushConfig.attributes)
  return _internal_attributes();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL PushConfig::_internal_mutable_attributes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.attributes_.MutableMap();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL PushConfig::mutable_attributes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_map:google.pubsub.v1.PushConfig.attributes)
  return _internal_mutable_attributes();
}

// .google.pubsub.v1.PushConfig.OidcToken oidc_token = 3 [(.google.api.field_behavior) = OPTIONAL];
inline bool PushConfig::has_oidc_token() const {
  return authentication_method_case() == kOidcToken;
}
inline bool PushConfig::_internal_has_oidc_token() const {
  return authentication_method_case() == kOidcToken;
}
inline void PushConfig::set_has_oidc_token() {
  _impl_._oneof_case_[0] = kOidcToken;
}
inline void PushConfig::clear_oidc_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (authentication_method_case() == kOidcToken) {
    if (GetArena() == nullptr) {
      delete _impl_.authentication_method_.oidc_token_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.authentication_method_.oidc_token_);
    }
    clear_has_authentication_method();
  }
}
inline ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE PushConfig::release_oidc_token() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PushConfig.oidc_token)
  if (authentication_method_case() == kOidcToken) {
    clear_has_authentication_method();
    auto* temp = _impl_.authentication_method_.oidc_token_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.authentication_method_.oidc_token_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::PushConfig_OidcToken& PushConfig::_internal_oidc_token() const {
  return authentication_method_case() == kOidcToken ? static_cast<const ::google::pubsub::v1::PushConfig_OidcToken&>(*_impl_.authentication_method_.oidc_token_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PushConfig_OidcToken>(&::google::pubsub::v1::PushConfig_OidcToken_globals_);
}
inline const ::google::pubsub::v1::PushConfig_OidcToken& PushConfig::oidc_token() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.oidc_token)
  return _internal_oidc_token();
}
inline ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE PushConfig::unsafe_arena_release_oidc_token() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.PushConfig.oidc_token)
  if (authentication_method_case() == kOidcToken) {
    clear_has_authentication_method();
    auto* temp = _impl_.authentication_method_.oidc_token_;
    _impl_.authentication_method_.oidc_token_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushConfig::unsafe_arena_set_allocated_oidc_token(
    ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_authentication_method();
  if (value) {
    set_has_oidc_token();
    _impl_.authentication_method_.oidc_token_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.PushConfig.oidc_token)
}
inline ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NONNULL PushConfig::_internal_mutable_oidc_token() {
  if (authentication_method_case() != kOidcToken) {
    clear_authentication_method();
    set_has_oidc_token();
    _impl_.authentication_method_.oidc_token_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PushConfig_OidcToken>(GetArena());
  }
  return _impl_.authentication_method_.oidc_token_;
}
inline ::google::pubsub::v1::PushConfig_OidcToken* PROTOBUF_NONNULL PushConfig::mutable_oidc_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::PushConfig_OidcToken* _msg = _internal_mutable_oidc_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PushConfig.oidc_token)
  return _msg;
}

// .google.pubsub.v1.PushConfig.PubsubWrapper pubsub_wrapper = 4 [(.google.api.field_behavior) = OPTIONAL];
inline bool PushConfig::has_pubsub_wrapper() const {
  return wrapper_case() == kPubsubWrapper;
}
inline bool PushConfig::_internal_has_pubsub_wrapper() const {
  return wrapper_case() == kPubsubWrapper;
}
inline void PushConfig::set_has_pubsub_wrapper() {
  _impl_._oneof_case_[1] = kPubsubWrapper;
}
inline void PushConfig::clear_pubsub_wrapper() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (wrapper_case() == kPubsubWrapper) {
    if (GetArena() == nullptr) {
      delete _impl_.wrapper_.pubsub_wrapper_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.wrapper_.pubsub_wrapper_);
    }
    clear_has_wrapper();
  }
}
inline ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE PushConfig::release_pubsub_wrapper() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PushConfig.pubsub_wrapper)
  if (wrapper_case() == kPubsubWrapper) {
    clear_has_wrapper();
    auto* temp = _impl_.wrapper_.pubsub_wrapper_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.wrapper_.pubsub_wrapper_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::PushConfig_PubsubWrapper& PushConfig::_internal_pubsub_wrapper() const {
  return wrapper_case() == kPubsubWrapper ? static_cast<const ::google::pubsub::v1::PushConfig_PubsubWrapper&>(*_impl_.wrapper_.pubsub_wrapper_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PushConfig_PubsubWrapper>(&::google::pubsub::v1::PushConfig_PubsubWrapper_globals_);
}
inline const ::google::pubsub::v1::PushConfig_PubsubWrapper& PushConfig::pubsub_wrapper() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.pubsub_wrapper)
  return _internal_pubsub_wrapper();
}
inline ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE PushConfig::unsafe_arena_release_pubsub_wrapper() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.PushConfig.pubsub_wrapper)
  if (wrapper_case() == kPubsubWrapper) {
    clear_has_wrapper();
    auto* temp = _impl_.wrapper_.pubsub_wrapper_;
    _impl_.wrapper_.pubsub_wrapper_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushConfig::unsafe_arena_set_allocated_pubsub_wrapper(
    ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_wrapper();
  if (value) {
    set_has_pubsub_wrapper();
    _impl_.wrapper_.pubsub_wrapper_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.PushConfig.pubsub_wrapper)
}
inline ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NONNULL PushConfig::_internal_mutable_pubsub_wrapper() {
  if (wrapper_case() != kPubsubWrapper) {
    clear_wrapper();
    set_has_pubsub_wrapper();
    _impl_.wrapper_.pubsub_wrapper_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PushConfig_PubsubWrapper>(GetArena());
  }
  return _impl_.wrapper_.pubsub_wrapper_;
}
inline ::google::pubsub::v1::PushConfig_PubsubWrapper* PROTOBUF_NONNULL PushConfig::mutable_pubsub_wrapper()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::PushConfig_PubsubWrapper* _msg = _internal_mutable_pubsub_wrapper();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PushConfig.pubsub_wrapper)
  return _msg;
}

// .google.pubsub.v1.PushConfig.NoWrapper no_wrapper = 5 [(.google.api.field_behavior) = OPTIONAL];
inline bool PushConfig::has_no_wrapper() const {
  return wrapper_case() == kNoWrapper;
}
inline bool PushConfig::_internal_has_no_wrapper() const {
  return wrapper_case() == kNoWrapper;
}
inline void PushConfig::set_has_no_wrapper() {
  _impl_._oneof_case_[1] = kNoWrapper;
}
inline void PushConfig::clear_no_wrapper() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (wrapper_case() == kNoWrapper) {
    if (GetArena() == nullptr) {
      delete _impl_.wrapper_.no_wrapper_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.wrapper_.no_wrapper_);
    }
    clear_has_wrapper();
  }
}
inline ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE PushConfig::release_no_wrapper() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PushConfig.no_wrapper)
  if (wrapper_case() == kNoWrapper) {
    clear_has_wrapper();
    auto* temp = _impl_.wrapper_.no_wrapper_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.wrapper_.no_wrapper_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::PushConfig_NoWrapper& PushConfig::_internal_no_wrapper() const {
  return wrapper_case() == kNoWrapper ? static_cast<const ::google::pubsub::v1::PushConfig_NoWrapper&>(*_impl_.wrapper_.no_wrapper_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PushConfig_NoWrapper>(&::google::pubsub::v1::PushConfig_NoWrapper_globals_);
}
inline const ::google::pubsub::v1::PushConfig_NoWrapper& PushConfig::no_wrapper() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PushConfig.no_wrapper)
  return _internal_no_wrapper();
}
inline ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE PushConfig::unsafe_arena_release_no_wrapper() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.PushConfig.no_wrapper)
  if (wrapper_case() == kNoWrapper) {
    clear_has_wrapper();
    auto* temp = _impl_.wrapper_.no_wrapper_;
    _impl_.wrapper_.no_wrapper_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void PushConfig::unsafe_arena_set_allocated_no_wrapper(
    ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_wrapper();
  if (value) {
    set_has_no_wrapper();
    _impl_.wrapper_.no_wrapper_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.PushConfig.no_wrapper)
}
inline ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NONNULL PushConfig::_internal_mutable_no_wrapper() {
  if (wrapper_case() != kNoWrapper) {
    clear_wrapper();
    set_has_no_wrapper();
    _impl_.wrapper_.no_wrapper_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PushConfig_NoWrapper>(GetArena());
  }
  return _impl_.wrapper_.no_wrapper_;
}
inline ::google::pubsub::v1::PushConfig_NoWrapper* PROTOBUF_NONNULL PushConfig::mutable_no_wrapper()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::PushConfig_NoWrapper* _msg = _internal_mutable_no_wrapper();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PushConfig.no_wrapper)
  return _msg;
}

inline bool PushConfig::has_authentication_method() const {
  return authentication_method_case() != AUTHENTICATION_METHOD_NOT_SET;
}
inline void PushConfig::clear_has_authentication_method() {
  _impl_._oneof_case_[0] = AUTHENTICATION_METHOD_NOT_SET;
}
inline bool PushConfig::has_wrapper() const {
  return wrapper_case() != WRAPPER_NOT_SET;
}
inline void PushConfig::clear_has_wrapper() {
  _impl_._oneof_case_[1] = WRAPPER_NOT_SET;
}
inline PushConfig::AuthenticationMethodCase PushConfig::authentication_method_case() const {
  return PushConfig::AuthenticationMethodCase(_impl_._oneof_case_[0]);
}
inline PushConfig::WrapperCase PushConfig::wrapper_case() const {
  return PushConfig::WrapperCase(_impl_._oneof_case_[1]);
}
// -------------------------------------------------------------------

// BigQueryConfig

// string table = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void BigQueryConfig::clear_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& BigQueryConfig::table() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.table)
  return _internal_table();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void BigQueryConfig::set_table(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.table_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.table)
}
inline ::std::string* PROTOBUF_NONNULL BigQueryConfig::mutable_table()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_table();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.BigQueryConfig.table)
  return _s;
}
inline const ::std::string& BigQueryConfig::_internal_table() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.table_.Get();
}
inline void BigQueryConfig::_internal_set_table(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.table_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL BigQueryConfig::_internal_mutable_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.table_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE BigQueryConfig::release_table() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.BigQueryConfig.table)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.table_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.table_.Set("", GetArena());
  }
  return released;
}
inline void BigQueryConfig::set_allocated_table(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.table_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.table_.IsDefault()) {
    _impl_.table_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.BigQueryConfig.table)
}

// bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void BigQueryConfig::clear_use_topic_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_topic_schema_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline bool BigQueryConfig::use_topic_schema() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.use_topic_schema)
  return _internal_use_topic_schema();
}
inline void BigQueryConfig::set_use_topic_schema(bool value) {
  _internal_set_use_topic_schema(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.use_topic_schema)
}
inline bool BigQueryConfig::_internal_use_topic_schema() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.use_topic_schema_;
}
inline void BigQueryConfig::_internal_set_use_topic_schema(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_topic_schema_ = value;
}

// bool write_metadata = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void BigQueryConfig::clear_write_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.write_metadata_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline bool BigQueryConfig::write_metadata() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.write_metadata)
  return _internal_write_metadata();
}
inline void BigQueryConfig::set_write_metadata(bool value) {
  _internal_set_write_metadata(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.write_metadata)
}
inline bool BigQueryConfig::_internal_write_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.write_metadata_;
}
inline void BigQueryConfig::_internal_set_write_metadata(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.write_metadata_ = value;
}

// bool drop_unknown_fields = 4 [(.google.api.field_behavior) = OPTIONAL];
inline void BigQueryConfig::clear_drop_unknown_fields() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.drop_unknown_fields_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline bool BigQueryConfig::drop_unknown_fields() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.drop_unknown_fields)
  return _internal_drop_unknown_fields();
}
inline void BigQueryConfig::set_drop_unknown_fields(bool value) {
  _internal_set_drop_unknown_fields(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.drop_unknown_fields)
}
inline bool BigQueryConfig::_internal_drop_unknown_fields() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.drop_unknown_fields_;
}
inline void BigQueryConfig::_internal_set_drop_unknown_fields(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.drop_unknown_fields_ = value;
}

// .google.pubsub.v1.BigQueryConfig.State state = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline void BigQueryConfig::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::google::pubsub::v1::BigQueryConfig_State BigQueryConfig::state() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.state)
  return _internal_state();
}
inline void BigQueryConfig::set_state(::google::pubsub::v1::BigQueryConfig_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.state)
}
inline ::google::pubsub::v1::BigQueryConfig_State BigQueryConfig::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::BigQueryConfig_State>(_impl_.state_);
}
inline void BigQueryConfig::_internal_set_state(::google::pubsub::v1::BigQueryConfig_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// bool use_table_schema = 6 [(.google.api.field_behavior) = OPTIONAL];
inline void BigQueryConfig::clear_use_table_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_table_schema_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline bool BigQueryConfig::use_table_schema() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.use_table_schema)
  return _internal_use_table_schema();
}
inline void BigQueryConfig::set_use_table_schema(bool value) {
  _internal_set_use_table_schema(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.use_table_schema)
}
inline bool BigQueryConfig::_internal_use_table_schema() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.use_table_schema_;
}
inline void BigQueryConfig::_internal_set_use_table_schema(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_table_schema_ = value;
}

// string service_account_email = 7 [(.google.api.field_behavior) = OPTIONAL];
inline void BigQueryConfig::clear_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_account_email_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& BigQueryConfig::service_account_email() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.BigQueryConfig.service_account_email)
  return _internal_service_account_email();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void BigQueryConfig::set_service_account_email(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.service_account_email_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.BigQueryConfig.service_account_email)
}
inline ::std::string* PROTOBUF_NONNULL BigQueryConfig::mutable_service_account_email()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_service_account_email();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.BigQueryConfig.service_account_email)
  return _s;
}
inline const ::std::string& BigQueryConfig::_internal_service_account_email() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_account_email_.Get();
}
inline void BigQueryConfig::_internal_set_service_account_email(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_account_email_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL BigQueryConfig::_internal_mutable_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.service_account_email_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE BigQueryConfig::release_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.BigQueryConfig.service_account_email)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.service_account_email_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.service_account_email_.Set("", GetArena());
  }
  return released;
}
inline void BigQueryConfig::set_allocated_service_account_email(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.service_account_email_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.service_account_email_.IsDefault()) {
    _impl_.service_account_email_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.BigQueryConfig.service_account_email)
}

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

// CloudStorageConfig_TextConfig

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

// CloudStorageConfig_AvroConfig

// bool write_metadata = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig_AvroConfig::clear_write_metadata() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.write_metadata_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool CloudStorageConfig_AvroConfig::write_metadata() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.AvroConfig.write_metadata)
  return _internal_write_metadata();
}
inline void CloudStorageConfig_AvroConfig::set_write_metadata(bool value) {
  _internal_set_write_metadata(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.AvroConfig.write_metadata)
}
inline bool CloudStorageConfig_AvroConfig::_internal_write_metadata() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.write_metadata_;
}
inline void CloudStorageConfig_AvroConfig::_internal_set_write_metadata(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.write_metadata_ = value;
}

// bool use_topic_schema = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig_AvroConfig::clear_use_topic_schema() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_topic_schema_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool CloudStorageConfig_AvroConfig::use_topic_schema() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.AvroConfig.use_topic_schema)
  return _internal_use_topic_schema();
}
inline void CloudStorageConfig_AvroConfig::set_use_topic_schema(bool value) {
  _internal_set_use_topic_schema(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.AvroConfig.use_topic_schema)
}
inline bool CloudStorageConfig_AvroConfig::_internal_use_topic_schema() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.use_topic_schema_;
}
inline void CloudStorageConfig_AvroConfig::_internal_set_use_topic_schema(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.use_topic_schema_ = value;
}

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

// CloudStorageConfig

// string bucket = 1 [(.google.api.field_behavior) = REQUIRED];
inline void CloudStorageConfig::clear_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bucket_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CloudStorageConfig::bucket() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.bucket)
  return _internal_bucket();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CloudStorageConfig::set_bucket(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.bucket_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.bucket)
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::mutable_bucket()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_bucket();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.bucket)
  return _s;
}
inline const ::std::string& CloudStorageConfig::_internal_bucket() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.bucket_.Get();
}
inline void CloudStorageConfig::_internal_set_bucket(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.bucket_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.bucket_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CloudStorageConfig::release_bucket() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.bucket)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.bucket_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.bucket_.Set("", GetArena());
  }
  return released;
}
inline void CloudStorageConfig::set_allocated_bucket(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.bucket_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.bucket_.IsDefault()) {
    _impl_.bucket_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CloudStorageConfig.bucket)
}

// string filename_prefix = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig::clear_filename_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_prefix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& CloudStorageConfig::filename_prefix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.filename_prefix)
  return _internal_filename_prefix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CloudStorageConfig::set_filename_prefix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.filename_prefix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.filename_prefix)
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::mutable_filename_prefix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_filename_prefix();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.filename_prefix)
  return _s;
}
inline const ::std::string& CloudStorageConfig::_internal_filename_prefix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filename_prefix_.Get();
}
inline void CloudStorageConfig::_internal_set_filename_prefix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_prefix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_filename_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.filename_prefix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CloudStorageConfig::release_filename_prefix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.filename_prefix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.filename_prefix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.filename_prefix_.Set("", GetArena());
  }
  return released;
}
inline void CloudStorageConfig::set_allocated_filename_prefix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.filename_prefix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.filename_prefix_.IsDefault()) {
    _impl_.filename_prefix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CloudStorageConfig.filename_prefix)
}

// string filename_suffix = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig::clear_filename_suffix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_suffix_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::std::string& CloudStorageConfig::filename_suffix() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.filename_suffix)
  return _internal_filename_suffix();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CloudStorageConfig::set_filename_suffix(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  _impl_.filename_suffix_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.filename_suffix)
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::mutable_filename_suffix()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::std::string* _s = _internal_mutable_filename_suffix();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.filename_suffix)
  return _s;
}
inline const ::std::string& CloudStorageConfig::_internal_filename_suffix() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filename_suffix_.Get();
}
inline void CloudStorageConfig::_internal_set_filename_suffix(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_suffix_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_filename_suffix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.filename_suffix_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CloudStorageConfig::release_filename_suffix() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.filename_suffix)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000004U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  auto* released = _impl_.filename_suffix_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.filename_suffix_.Set("", GetArena());
  }
  return released;
}
inline void CloudStorageConfig::set_allocated_filename_suffix(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  _impl_.filename_suffix_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.filename_suffix_.IsDefault()) {
    _impl_.filename_suffix_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CloudStorageConfig.filename_suffix)
}

// string filename_datetime_format = 10 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig::clear_filename_datetime_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_datetime_format_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& CloudStorageConfig::filename_datetime_format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.filename_datetime_format)
  return _internal_filename_datetime_format();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CloudStorageConfig::set_filename_datetime_format(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.filename_datetime_format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.filename_datetime_format)
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::mutable_filename_datetime_format()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_filename_datetime_format();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.filename_datetime_format)
  return _s;
}
inline const ::std::string& CloudStorageConfig::_internal_filename_datetime_format() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.filename_datetime_format_.Get();
}
inline void CloudStorageConfig::_internal_set_filename_datetime_format(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.filename_datetime_format_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_filename_datetime_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.filename_datetime_format_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CloudStorageConfig::release_filename_datetime_format() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.filename_datetime_format)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.filename_datetime_format_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.filename_datetime_format_.Set("", GetArena());
  }
  return released;
}
inline void CloudStorageConfig::set_allocated_filename_datetime_format(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.filename_datetime_format_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.filename_datetime_format_.IsDefault()) {
    _impl_.filename_datetime_format_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CloudStorageConfig.filename_datetime_format)
}

// .google.pubsub.v1.CloudStorageConfig.TextConfig text_config = 4 [(.google.api.field_behavior) = OPTIONAL];
inline bool CloudStorageConfig::has_text_config() const {
  return output_format_case() == kTextConfig;
}
inline bool CloudStorageConfig::_internal_has_text_config() const {
  return output_format_case() == kTextConfig;
}
inline void CloudStorageConfig::set_has_text_config() {
  _impl_._oneof_case_[0] = kTextConfig;
}
inline void CloudStorageConfig::clear_text_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (output_format_case() == kTextConfig) {
    if (GetArena() == nullptr) {
      delete _impl_.output_format_.text_config_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.output_format_.text_config_);
    }
    clear_has_output_format();
  }
}
inline ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE CloudStorageConfig::release_text_config() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.text_config)
  if (output_format_case() == kTextConfig) {
    clear_has_output_format();
    auto* temp = _impl_.output_format_.text_config_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.output_format_.text_config_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::CloudStorageConfig_TextConfig& CloudStorageConfig::_internal_text_config() const {
  return output_format_case() == kTextConfig ? static_cast<const ::google::pubsub::v1::CloudStorageConfig_TextConfig&>(*_impl_.output_format_.text_config_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::CloudStorageConfig_TextConfig>(&::google::pubsub::v1::CloudStorageConfig_TextConfig_globals_);
}
inline const ::google::pubsub::v1::CloudStorageConfig_TextConfig& CloudStorageConfig::text_config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.text_config)
  return _internal_text_config();
}
inline ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE CloudStorageConfig::unsafe_arena_release_text_config() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.CloudStorageConfig.text_config)
  if (output_format_case() == kTextConfig) {
    clear_has_output_format();
    auto* temp = _impl_.output_format_.text_config_;
    _impl_.output_format_.text_config_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void CloudStorageConfig::unsafe_arena_set_allocated_text_config(
    ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_output_format();
  if (value) {
    set_has_text_config();
    _impl_.output_format_.text_config_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.CloudStorageConfig.text_config)
}
inline ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_text_config() {
  if (output_format_case() != kTextConfig) {
    clear_output_format();
    set_has_text_config();
    _impl_.output_format_.text_config_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::CloudStorageConfig_TextConfig>(GetArena());
  }
  return _impl_.output_format_.text_config_;
}
inline ::google::pubsub::v1::CloudStorageConfig_TextConfig* PROTOBUF_NONNULL CloudStorageConfig::mutable_text_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::CloudStorageConfig_TextConfig* _msg = _internal_mutable_text_config();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.text_config)
  return _msg;
}

// .google.pubsub.v1.CloudStorageConfig.AvroConfig avro_config = 5 [(.google.api.field_behavior) = OPTIONAL];
inline bool CloudStorageConfig::has_avro_config() const {
  return output_format_case() == kAvroConfig;
}
inline bool CloudStorageConfig::_internal_has_avro_config() const {
  return output_format_case() == kAvroConfig;
}
inline void CloudStorageConfig::set_has_avro_config() {
  _impl_._oneof_case_[0] = kAvroConfig;
}
inline void CloudStorageConfig::clear_avro_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (output_format_case() == kAvroConfig) {
    if (GetArena() == nullptr) {
      delete _impl_.output_format_.avro_config_;
    } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) {
      ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.output_format_.avro_config_);
    }
    clear_has_output_format();
  }
}
inline ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE CloudStorageConfig::release_avro_config() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.avro_config)
  if (output_format_case() == kAvroConfig) {
    clear_has_output_format();
    auto* temp = _impl_.output_format_.avro_config_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.output_format_.avro_config_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::pubsub::v1::CloudStorageConfig_AvroConfig& CloudStorageConfig::_internal_avro_config() const {
  return output_format_case() == kAvroConfig ? static_cast<const ::google::pubsub::v1::CloudStorageConfig_AvroConfig&>(*_impl_.output_format_.avro_config_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::CloudStorageConfig_AvroConfig>(&::google::pubsub::v1::CloudStorageConfig_AvroConfig_globals_);
}
inline const ::google::pubsub::v1::CloudStorageConfig_AvroConfig& CloudStorageConfig::avro_config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.avro_config)
  return _internal_avro_config();
}
inline ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE CloudStorageConfig::unsafe_arena_release_avro_config() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.CloudStorageConfig.avro_config)
  if (output_format_case() == kAvroConfig) {
    clear_has_output_format();
    auto* temp = _impl_.output_format_.avro_config_;
    _impl_.output_format_.avro_config_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void CloudStorageConfig::unsafe_arena_set_allocated_avro_config(
    ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_output_format();
  if (value) {
    set_has_avro_config();
    _impl_.output_format_.avro_config_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.CloudStorageConfig.avro_config)
}
inline ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_avro_config() {
  if (output_format_case() != kAvroConfig) {
    clear_output_format();
    set_has_avro_config();
    _impl_.output_format_.avro_config_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::CloudStorageConfig_AvroConfig>(GetArena());
  }
  return _impl_.output_format_.avro_config_;
}
inline ::google::pubsub::v1::CloudStorageConfig_AvroConfig* PROTOBUF_NONNULL CloudStorageConfig::mutable_avro_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::pubsub::v1::CloudStorageConfig_AvroConfig* _msg = _internal_mutable_avro_config();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.avro_config)
  return _msg;
}

// .google.protobuf.Duration max_duration = 6 [(.google.api.field_behavior) = OPTIONAL];
inline bool CloudStorageConfig::has_max_duration() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000020U);
  PROTOBUF_ASSUME(!value || _impl_.max_duration_ != nullptr);
  return value;
}
inline const ::google::protobuf::Duration& CloudStorageConfig::_internal_max_duration() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Duration* p = _impl_.max_duration_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Duration>(&::google::protobuf::Duration_globals_);
}
inline const ::google::protobuf::Duration& CloudStorageConfig::max_duration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.max_duration)
  return _internal_max_duration();
}
inline void CloudStorageConfig::unsafe_arena_set_allocated_max_duration(
    ::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.max_duration_);
  }
  _impl_.max_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.CloudStorageConfig.max_duration)
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE CloudStorageConfig::release_max_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::protobuf::Duration* released = _impl_.max_duration_;
  _impl_.max_duration_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Duration* PROTOBUF_NULLABLE CloudStorageConfig::unsafe_arena_release_max_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.max_duration)

  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::protobuf::Duration* temp = _impl_.max_duration_;
  _impl_.max_duration_ = nullptr;
  return temp;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_max_duration() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.max_duration_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena());
    _impl_.max_duration_ = reinterpret_cast<::google::protobuf::Duration*>(p);
  }
  return _impl_.max_duration_;
}
inline ::google::protobuf::Duration* PROTOBUF_NONNULL CloudStorageConfig::mutable_max_duration()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  ::google::protobuf::Duration* _msg = _internal_mutable_max_duration();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.max_duration)
  return _msg;
}
inline void CloudStorageConfig::set_allocated_max_duration(::google::protobuf::Duration* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.max_duration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
  }

  _impl_.max_duration_ = reinterpret_cast<::google::protobuf::Duration*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CloudStorageConfig.max_duration)
}

// int64 max_bytes = 7 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig::clear_max_bytes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_bytes_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::int64_t CloudStorageConfig::max_bytes() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.max_bytes)
  return _internal_max_bytes();
}
inline void CloudStorageConfig::set_max_bytes(::int64_t value) {
  _internal_set_max_bytes(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.max_bytes)
}
inline ::int64_t CloudStorageConfig::_internal_max_bytes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_bytes_;
}
inline void CloudStorageConfig::_internal_set_max_bytes(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_bytes_ = value;
}

// int64 max_messages = 8 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig::clear_max_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_messages_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::int64_t CloudStorageConfig::max_messages() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.max_messages)
  return _internal_max_messages();
}
inline void CloudStorageConfig::set_max_messages(::int64_t value) {
  _internal_set_max_messages(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.max_messages)
}
inline ::int64_t CloudStorageConfig::_internal_max_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_messages_;
}
inline void CloudStorageConfig::_internal_set_max_messages(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_messages_ = value;
}

// .google.pubsub.v1.CloudStorageConfig.State state = 9 [(.google.api.field_behavior) = OUTPUT_ONLY];
inline void CloudStorageConfig::clear_state() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000100U);
}
inline ::google::pubsub::v1::CloudStorageConfig_State CloudStorageConfig::state() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.state)
  return _internal_state();
}
inline void CloudStorageConfig::set_state(::google::pubsub::v1::CloudStorageConfig_State value) {
  _internal_set_state(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000100U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.state)
}
inline ::google::pubsub::v1::CloudStorageConfig_State CloudStorageConfig::_internal_state() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return static_cast<::google::pubsub::v1::CloudStorageConfig_State>(_impl_.state_);
}
inline void CloudStorageConfig::_internal_set_state(::google::pubsub::v1::CloudStorageConfig_State value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.state_ = value;
}

// string service_account_email = 11 [(.google.api.field_behavior) = OPTIONAL];
inline void CloudStorageConfig::clear_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_account_email_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& CloudStorageConfig::service_account_email() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CloudStorageConfig.service_account_email)
  return _internal_service_account_email();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CloudStorageConfig::set_service_account_email(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.service_account_email_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CloudStorageConfig.service_account_email)
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::mutable_service_account_email()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_service_account_email();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CloudStorageConfig.service_account_email)
  return _s;
}
inline const ::std::string& CloudStorageConfig::_internal_service_account_email() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.service_account_email_.Get();
}
inline void CloudStorageConfig::_internal_set_service_account_email(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.service_account_email_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CloudStorageConfig::_internal_mutable_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.service_account_email_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CloudStorageConfig::release_service_account_email() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CloudStorageConfig.service_account_email)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.service_account_email_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.service_account_email_.Set("", GetArena());
  }
  return released;
}
inline void CloudStorageConfig::set_allocated_service_account_email(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.service_account_email_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.service_account_email_.IsDefault()) {
    _impl_.service_account_email_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CloudStorageConfig.service_account_email)
}

inline bool CloudStorageConfig::has_output_format() const {
  return output_format_case() != OUTPUT_FORMAT_NOT_SET;
}
inline void CloudStorageConfig::clear_has_output_format() {
  _impl_._oneof_case_[0] = OUTPUT_FORMAT_NOT_SET;
}
inline CloudStorageConfig::OutputFormatCase CloudStorageConfig::output_format_case() const {
  return CloudStorageConfig::OutputFormatCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// ReceivedMessage

// string ack_id = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void ReceivedMessage::clear_ack_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ReceivedMessage::ack_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ReceivedMessage.ack_id)
  return _internal_ack_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ReceivedMessage::set_ack_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.ack_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ReceivedMessage.ack_id)
}
inline ::std::string* PROTOBUF_NONNULL ReceivedMessage::mutable_ack_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_ack_id();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ReceivedMessage.ack_id)
  return _s;
}
inline const ::std::string& ReceivedMessage::_internal_ack_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_id_.Get();
}
inline void ReceivedMessage::_internal_set_ack_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ReceivedMessage::_internal_mutable_ack_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.ack_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ReceivedMessage::release_ack_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ReceivedMessage.ack_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.ack_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.ack_id_.Set("", GetArena());
  }
  return released;
}
inline void ReceivedMessage::set_allocated_ack_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.ack_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.ack_id_.IsDefault()) {
    _impl_.ack_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ReceivedMessage.ack_id)
}

// .google.pubsub.v1.PubsubMessage message = 2 [(.google.api.field_behavior) = OPTIONAL];
inline bool ReceivedMessage::has_message() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.message_ != nullptr);
  return value;
}
inline void ReceivedMessage::clear_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.message_ != nullptr) _impl_.message_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::google::pubsub::v1::PubsubMessage& ReceivedMessage::_internal_message() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::PubsubMessage* p = _impl_.message_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PubsubMessage>(&::google::pubsub::v1::PubsubMessage_globals_);
}
inline const ::google::pubsub::v1::PubsubMessage& ReceivedMessage::message() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ReceivedMessage.message)
  return _internal_message();
}
inline void ReceivedMessage::unsafe_arena_set_allocated_message(
    ::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_);
  }
  _impl_.message_ = reinterpret_cast<::google::pubsub::v1::PubsubMessage*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.ReceivedMessage.message)
}
inline ::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE ReceivedMessage::release_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::PubsubMessage* released = _impl_.message_;
  _impl_.message_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE ReceivedMessage::unsafe_arena_release_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ReceivedMessage.message)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::PubsubMessage* temp = _impl_.message_;
  _impl_.message_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL ReceivedMessage::_internal_mutable_message() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.message_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PubsubMessage>(GetArena());
    _impl_.message_ = reinterpret_cast<::google::pubsub::v1::PubsubMessage*>(p);
  }
  return _impl_.message_;
}
inline ::google::pubsub::v1::PubsubMessage* PROTOBUF_NONNULL ReceivedMessage::mutable_message()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::PubsubMessage* _msg = _internal_mutable_message();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ReceivedMessage.message)
  return _msg;
}
inline void ReceivedMessage::set_allocated_message(::google::pubsub::v1::PubsubMessage* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.message_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.message_ = reinterpret_cast<::google::pubsub::v1::PubsubMessage*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ReceivedMessage.message)
}

// int32 delivery_attempt = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void ReceivedMessage::clear_delivery_attempt() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.delivery_attempt_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ReceivedMessage::delivery_attempt() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ReceivedMessage.delivery_attempt)
  return _internal_delivery_attempt();
}
inline void ReceivedMessage::set_delivery_attempt(::int32_t value) {
  _internal_set_delivery_attempt(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ReceivedMessage.delivery_attempt)
}
inline ::int32_t ReceivedMessage::_internal_delivery_attempt() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.delivery_attempt_;
}
inline void ReceivedMessage::_internal_set_delivery_attempt(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.delivery_attempt_ = value;
}

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

// GetSubscriptionRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void GetSubscriptionRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& GetSubscriptionRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.GetSubscriptionRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void GetSubscriptionRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.GetSubscriptionRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL GetSubscriptionRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.GetSubscriptionRequest.subscription)
  return _s;
}
inline const ::std::string& GetSubscriptionRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void GetSubscriptionRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL GetSubscriptionRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE GetSubscriptionRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.GetSubscriptionRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void GetSubscriptionRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.GetSubscriptionRequest.subscription)
}

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

// UpdateSubscriptionRequest

// .google.pubsub.v1.Subscription subscription = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool UpdateSubscriptionRequest::has_subscription() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.subscription_ != nullptr);
  return value;
}
inline void UpdateSubscriptionRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.subscription_ != nullptr) _impl_.subscription_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::Subscription& UpdateSubscriptionRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::Subscription* p = _impl_.subscription_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::Subscription>(&::google::pubsub::v1::Subscription_globals_);
}
inline const ::google::pubsub::v1::Subscription& UpdateSubscriptionRequest::subscription() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.UpdateSubscriptionRequest.subscription)
  return _internal_subscription();
}
inline void UpdateSubscriptionRequest::unsafe_arena_set_allocated_subscription(
    ::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.subscription_);
  }
  _impl_.subscription_ = reinterpret_cast<::google::pubsub::v1::Subscription*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.UpdateSubscriptionRequest.subscription)
}
inline ::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE UpdateSubscriptionRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Subscription* released = _impl_.subscription_;
  _impl_.subscription_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE UpdateSubscriptionRequest::unsafe_arena_release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.UpdateSubscriptionRequest.subscription)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Subscription* temp = _impl_.subscription_;
  _impl_.subscription_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL UpdateSubscriptionRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.subscription_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::Subscription>(GetArena());
    _impl_.subscription_ = reinterpret_cast<::google::pubsub::v1::Subscription*>(p);
  }
  return _impl_.subscription_;
}
inline ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL UpdateSubscriptionRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Subscription* _msg = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.UpdateSubscriptionRequest.subscription)
  return _msg;
}
inline void UpdateSubscriptionRequest::set_allocated_subscription(::google::pubsub::v1::Subscription* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.subscription_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.subscription_ = reinterpret_cast<::google::pubsub::v1::Subscription*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.UpdateSubscriptionRequest.subscription)
}

// .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
inline bool UpdateSubscriptionRequest::has_update_mask() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.update_mask_ != nullptr);
  return value;
}
inline const ::google::protobuf::FieldMask& UpdateSubscriptionRequest::_internal_update_mask() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::FieldMask* p = _impl_.update_mask_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::FieldMask>(&::google::protobuf::FieldMask_globals_);
}
inline const ::google::protobuf::FieldMask& UpdateSubscriptionRequest::update_mask() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.UpdateSubscriptionRequest.update_mask)
  return _internal_update_mask();
}
inline void UpdateSubscriptionRequest::unsafe_arena_set_allocated_update_mask(
    ::google::protobuf::FieldMask* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.update_mask_);
  }
  _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.UpdateSubscriptionRequest.update_mask)
}
inline ::google::protobuf::FieldMask* PROTOBUF_NULLABLE UpdateSubscriptionRequest::release_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* released = _impl_.update_mask_;
  _impl_.update_mask_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NULLABLE UpdateSubscriptionRequest::unsafe_arena_release_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.UpdateSubscriptionRequest.update_mask)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* temp = _impl_.update_mask_;
  _impl_.update_mask_ = nullptr;
  return temp;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NONNULL UpdateSubscriptionRequest::_internal_mutable_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.update_mask_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::FieldMask>(GetArena());
    _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(p);
  }
  return _impl_.update_mask_;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NONNULL UpdateSubscriptionRequest::mutable_update_mask()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* _msg = _internal_mutable_update_mask();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.UpdateSubscriptionRequest.update_mask)
  return _msg;
}
inline void UpdateSubscriptionRequest::set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.update_mask_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.UpdateSubscriptionRequest.update_mask)
}

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

// ListSubscriptionsRequest

// string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ListSubscriptionsRequest::clear_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.project_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListSubscriptionsRequest::project() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSubscriptionsRequest.project)
  return _internal_project();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListSubscriptionsRequest::set_project(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.project_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSubscriptionsRequest.project)
}
inline ::std::string* PROTOBUF_NONNULL ListSubscriptionsRequest::mutable_project()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_project();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSubscriptionsRequest.project)
  return _s;
}
inline const ::std::string& ListSubscriptionsRequest::_internal_project() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.project_.Get();
}
inline void ListSubscriptionsRequest::_internal_set_project(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.project_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListSubscriptionsRequest::_internal_mutable_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.project_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListSubscriptionsRequest::release_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListSubscriptionsRequest.project)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.project_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.project_.Set("", GetArena());
  }
  return released;
}
inline void ListSubscriptionsRequest::set_allocated_project(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.project_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.project_.IsDefault()) {
    _impl_.project_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListSubscriptionsRequest.project)
}

// int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListSubscriptionsRequest::clear_page_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ListSubscriptionsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSubscriptionsRequest.page_size)
  return _internal_page_size();
}
inline void ListSubscriptionsRequest::set_page_size(::int32_t value) {
  _internal_set_page_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSubscriptionsRequest.page_size)
}
inline ::int32_t ListSubscriptionsRequest::_internal_page_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_size_;
}
inline void ListSubscriptionsRequest::_internal_set_page_size(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = value;
}

// string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void ListSubscriptionsRequest::clear_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListSubscriptionsRequest::page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSubscriptionsRequest.page_token)
  return _internal_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListSubscriptionsRequest::set_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSubscriptionsRequest.page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListSubscriptionsRequest::mutable_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSubscriptionsRequest.page_token)
  return _s;
}
inline const ::std::string& ListSubscriptionsRequest::_internal_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_token_.Get();
}
inline void ListSubscriptionsRequest::_internal_set_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListSubscriptionsRequest::_internal_mutable_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListSubscriptionsRequest::release_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListSubscriptionsRequest.page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListSubscriptionsRequest::set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.page_token_.IsDefault()) {
    _impl_.page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListSubscriptionsRequest.page_token)
}

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

// ListSubscriptionsResponse

// repeated .google.pubsub.v1.Subscription subscriptions = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int ListSubscriptionsResponse::_internal_subscriptions_size() const {
  return _internal_subscriptions().size();
}
inline int ListSubscriptionsResponse::subscriptions_size() const {
  return _internal_subscriptions_size();
}
inline void ListSubscriptionsResponse::clear_subscriptions() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscriptions_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::Subscription& ListSubscriptionsResponse::subscriptions(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSubscriptionsResponse.subscriptions)
  return _internal_subscriptions().Get(index);
}
inline ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL ListSubscriptionsResponse::mutable_subscriptions(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSubscriptionsResponse.subscriptions)
  return _internal_mutable_subscriptions()->Mutable(index);
}
inline ::google::pubsub::v1::Subscription* PROTOBUF_NONNULL ListSubscriptionsResponse::add_subscriptions()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::pubsub::v1::Subscription* _add =
      _internal_mutable_subscriptions()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.ListSubscriptionsResponse.subscriptions)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>& ListSubscriptionsResponse::subscriptions() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.ListSubscriptionsResponse.subscriptions)
  return _internal_subscriptions();
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>* PROTOBUF_NONNULL
ListSubscriptionsResponse::mutable_subscriptions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.ListSubscriptionsResponse.subscriptions)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_subscriptions();
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>&
ListSubscriptionsResponse::_internal_subscriptions() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscriptions_;
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Subscription>* PROTOBUF_NONNULL
ListSubscriptionsResponse::_internal_mutable_subscriptions() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.subscriptions_;
}

// string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListSubscriptionsResponse::clear_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListSubscriptionsResponse::next_page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSubscriptionsResponse.next_page_token)
  return _internal_next_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListSubscriptionsResponse::set_next_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.next_page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSubscriptionsResponse.next_page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListSubscriptionsResponse::mutable_next_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_next_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSubscriptionsResponse.next_page_token)
  return _s;
}
inline const ::std::string& ListSubscriptionsResponse::_internal_next_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.next_page_token_.Get();
}
inline void ListSubscriptionsResponse::_internal_set_next_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListSubscriptionsResponse::_internal_mutable_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.next_page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListSubscriptionsResponse::release_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListSubscriptionsResponse.next_page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.next_page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListSubscriptionsResponse::set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.next_page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.next_page_token_.IsDefault()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListSubscriptionsResponse.next_page_token)
}

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

// DeleteSubscriptionRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void DeleteSubscriptionRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteSubscriptionRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.DeleteSubscriptionRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteSubscriptionRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.DeleteSubscriptionRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL DeleteSubscriptionRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.DeleteSubscriptionRequest.subscription)
  return _s;
}
inline const ::std::string& DeleteSubscriptionRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void DeleteSubscriptionRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteSubscriptionRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteSubscriptionRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.DeleteSubscriptionRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void DeleteSubscriptionRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.DeleteSubscriptionRequest.subscription)
}

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

// ModifyPushConfigRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ModifyPushConfigRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ModifyPushConfigRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ModifyPushConfigRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ModifyPushConfigRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ModifyPushConfigRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL ModifyPushConfigRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ModifyPushConfigRequest.subscription)
  return _s;
}
inline const ::std::string& ModifyPushConfigRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void ModifyPushConfigRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ModifyPushConfigRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ModifyPushConfigRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ModifyPushConfigRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void ModifyPushConfigRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ModifyPushConfigRequest.subscription)
}

// .google.pubsub.v1.PushConfig push_config = 2 [(.google.api.field_behavior) = REQUIRED];
inline bool ModifyPushConfigRequest::has_push_config() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.push_config_ != nullptr);
  return value;
}
inline void ModifyPushConfigRequest::clear_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.push_config_ != nullptr) _impl_.push_config_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::google::pubsub::v1::PushConfig& ModifyPushConfigRequest::_internal_push_config() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::PushConfig* p = _impl_.push_config_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::PushConfig>(&::google::pubsub::v1::PushConfig_globals_);
}
inline const ::google::pubsub::v1::PushConfig& ModifyPushConfigRequest::push_config() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ModifyPushConfigRequest.push_config)
  return _internal_push_config();
}
inline void ModifyPushConfigRequest::unsafe_arena_set_allocated_push_config(
    ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.push_config_);
  }
  _impl_.push_config_ = reinterpret_cast<::google::pubsub::v1::PushConfig*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.ModifyPushConfigRequest.push_config)
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE ModifyPushConfigRequest::release_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::PushConfig* released = _impl_.push_config_;
  _impl_.push_config_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE ModifyPushConfigRequest::unsafe_arena_release_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ModifyPushConfigRequest.push_config)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::PushConfig* temp = _impl_.push_config_;
  _impl_.push_config_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL ModifyPushConfigRequest::_internal_mutable_push_config() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.push_config_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::PushConfig>(GetArena());
    _impl_.push_config_ = reinterpret_cast<::google::pubsub::v1::PushConfig*>(p);
  }
  return _impl_.push_config_;
}
inline ::google::pubsub::v1::PushConfig* PROTOBUF_NONNULL ModifyPushConfigRequest::mutable_push_config()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::PushConfig* _msg = _internal_mutable_push_config();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ModifyPushConfigRequest.push_config)
  return _msg;
}
inline void ModifyPushConfigRequest::set_allocated_push_config(::google::pubsub::v1::PushConfig* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.push_config_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.push_config_ = reinterpret_cast<::google::pubsub::v1::PushConfig*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ModifyPushConfigRequest.push_config)
}

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

// PullRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void PullRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& PullRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PullRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void PullRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PullRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL PullRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PullRequest.subscription)
  return _s;
}
inline const ::std::string& PullRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void PullRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL PullRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE PullRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.PullRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void PullRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.PullRequest.subscription)
}

// bool return_immediately = 2 [deprecated = true, (.google.api.field_behavior) = OPTIONAL];
inline void PullRequest::clear_return_immediately() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.return_immediately_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool PullRequest::return_immediately() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PullRequest.return_immediately)
  return _internal_return_immediately();
}
inline void PullRequest::set_return_immediately(bool value) {
  _internal_set_return_immediately(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PullRequest.return_immediately)
}
inline bool PullRequest::_internal_return_immediately() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.return_immediately_;
}
inline void PullRequest::_internal_set_return_immediately(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.return_immediately_ = value;
}

// int32 max_messages = 3 [(.google.api.field_behavior) = REQUIRED];
inline void PullRequest::clear_max_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_messages_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t PullRequest::max_messages() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PullRequest.max_messages)
  return _internal_max_messages();
}
inline void PullRequest::set_max_messages(::int32_t value) {
  _internal_set_max_messages(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.PullRequest.max_messages)
}
inline ::int32_t PullRequest::_internal_max_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_messages_;
}
inline void PullRequest::_internal_set_max_messages(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_messages_ = value;
}

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

// PullResponse

// repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int PullResponse::_internal_received_messages_size() const {
  return _internal_received_messages().size();
}
inline int PullResponse::received_messages_size() const {
  return _internal_received_messages_size();
}
inline void PullResponse::clear_received_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_messages_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::ReceivedMessage& PullResponse::received_messages(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.PullResponse.received_messages)
  return _internal_received_messages().Get(index);
}
inline ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL PullResponse::mutable_received_messages(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.PullResponse.received_messages)
  return _internal_mutable_received_messages()->Mutable(index);
}
inline ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL PullResponse::add_received_messages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::pubsub::v1::ReceivedMessage* _add =
      _internal_mutable_received_messages()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.PullResponse.received_messages)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>& PullResponse::received_messages() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.PullResponse.received_messages)
  return _internal_received_messages();
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL
PullResponse::mutable_received_messages() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.PullResponse.received_messages)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_received_messages();
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>&
PullResponse::_internal_received_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_messages_;
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL
PullResponse::_internal_mutable_received_messages() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.received_messages_;
}

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

// ModifyAckDeadlineRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ModifyAckDeadlineRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ModifyAckDeadlineRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ModifyAckDeadlineRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ModifyAckDeadlineRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ModifyAckDeadlineRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL ModifyAckDeadlineRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ModifyAckDeadlineRequest.subscription)
  return _s;
}
inline const ::std::string& ModifyAckDeadlineRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void ModifyAckDeadlineRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ModifyAckDeadlineRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ModifyAckDeadlineRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ModifyAckDeadlineRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void ModifyAckDeadlineRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ModifyAckDeadlineRequest.subscription)
}

// repeated string ack_ids = 4 [(.google.api.field_behavior) = REQUIRED];
inline int ModifyAckDeadlineRequest::_internal_ack_ids_size() const {
  return _internal_ack_ids().size();
}
inline int ModifyAckDeadlineRequest::ack_ids_size() const {
  return _internal_ack_ids_size();
}
inline void ModifyAckDeadlineRequest::clear_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL ModifyAckDeadlineRequest::add_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
  return _s;
}
inline const ::std::string& ModifyAckDeadlineRequest::ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
  return _internal_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL ModifyAckDeadlineRequest::mutable_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
  return _internal_mutable_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void ModifyAckDeadlineRequest::set_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
}
template <typename Arg_, typename... Args_>
inline void ModifyAckDeadlineRequest::add_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& ModifyAckDeadlineRequest::ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
  return _internal_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ModifyAckDeadlineRequest::mutable_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.ModifyAckDeadlineRequest.ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
ModifyAckDeadlineRequest::_internal_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
ModifyAckDeadlineRequest::_internal_mutable_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.ack_ids_;
}

// int32 ack_deadline_seconds = 3 [(.google.api.field_behavior) = REQUIRED];
inline void ModifyAckDeadlineRequest::clear_ack_deadline_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_deadline_seconds_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ModifyAckDeadlineRequest::ack_deadline_seconds() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ModifyAckDeadlineRequest.ack_deadline_seconds)
  return _internal_ack_deadline_seconds();
}
inline void ModifyAckDeadlineRequest::set_ack_deadline_seconds(::int32_t value) {
  _internal_set_ack_deadline_seconds(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ModifyAckDeadlineRequest.ack_deadline_seconds)
}
inline ::int32_t ModifyAckDeadlineRequest::_internal_ack_deadline_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_deadline_seconds_;
}
inline void ModifyAckDeadlineRequest::_internal_set_ack_deadline_seconds(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_deadline_seconds_ = value;
}

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

// AcknowledgeRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void AcknowledgeRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& AcknowledgeRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.AcknowledgeRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void AcknowledgeRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.AcknowledgeRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL AcknowledgeRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.AcknowledgeRequest.subscription)
  return _s;
}
inline const ::std::string& AcknowledgeRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void AcknowledgeRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL AcknowledgeRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE AcknowledgeRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.AcknowledgeRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void AcknowledgeRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.AcknowledgeRequest.subscription)
}

// repeated string ack_ids = 2 [(.google.api.field_behavior) = REQUIRED];
inline int AcknowledgeRequest::_internal_ack_ids_size() const {
  return _internal_ack_ids().size();
}
inline int AcknowledgeRequest::ack_ids_size() const {
  return _internal_ack_ids_size();
}
inline void AcknowledgeRequest::clear_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL AcknowledgeRequest::add_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.AcknowledgeRequest.ack_ids)
  return _s;
}
inline const ::std::string& AcknowledgeRequest::ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.AcknowledgeRequest.ack_ids)
  return _internal_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL AcknowledgeRequest::mutable_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.AcknowledgeRequest.ack_ids)
  return _internal_mutable_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void AcknowledgeRequest::set_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.AcknowledgeRequest.ack_ids)
}
template <typename Arg_, typename... Args_>
inline void AcknowledgeRequest::add_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.AcknowledgeRequest.ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& AcknowledgeRequest::ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.AcknowledgeRequest.ack_ids)
  return _internal_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
AcknowledgeRequest::mutable_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.AcknowledgeRequest.ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
AcknowledgeRequest::_internal_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
AcknowledgeRequest::_internal_mutable_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.ack_ids_;
}

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

// StreamingPullRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void StreamingPullRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::std::string& StreamingPullRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StreamingPullRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullRequest.subscription)
  return _s;
}
inline const ::std::string& StreamingPullRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void StreamingPullRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StreamingPullRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.StreamingPullRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000008U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void StreamingPullRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.StreamingPullRequest.subscription)
}

// repeated string ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullRequest::_internal_ack_ids_size() const {
  return _internal_ack_ids().size();
}
inline int StreamingPullRequest::ack_ids_size() const {
  return _internal_ack_ids_size();
}
inline void StreamingPullRequest::clear_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::add_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullRequest.ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullRequest::ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.ack_ids)
  return _internal_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::mutable_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullRequest.ack_ids)
  return _internal_mutable_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullRequest::set_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullRequest::add_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullRequest.ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullRequest::ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullRequest.ack_ids)
  return _internal_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullRequest::mutable_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullRequest.ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullRequest::_internal_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullRequest::_internal_mutable_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.ack_ids_;
}

// repeated int32 modify_deadline_seconds = 3 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullRequest::_internal_modify_deadline_seconds_size() const {
  return _internal_modify_deadline_seconds().size();
}
inline int StreamingPullRequest::modify_deadline_seconds_size() const {
  return _internal_modify_deadline_seconds_size();
}
inline void StreamingPullRequest::clear_modify_deadline_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.modify_deadline_seconds_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::int32_t StreamingPullRequest::modify_deadline_seconds(int index) const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.modify_deadline_seconds)
  return _internal_modify_deadline_seconds().Get(index);
}
inline void StreamingPullRequest::set_modify_deadline_seconds(int index, ::int32_t value) {
  _internal_mutable_modify_deadline_seconds()->Set(index, value);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.modify_deadline_seconds)
}
inline void StreamingPullRequest::add_modify_deadline_seconds(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _internal_mutable_modify_deadline_seconds()
      ->InternalAddWithArena<const ::google::protobuf::MessageLite*>(
          internal_visibility(), this, value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullRequest.modify_deadline_seconds)
}
inline const ::google::protobuf::RepeatedField<::int32_t>& StreamingPullRequest::modify_deadline_seconds() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullRequest.modify_deadline_seconds)
  return _internal_modify_deadline_seconds();
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL StreamingPullRequest::mutable_modify_deadline_seconds()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullRequest.modify_deadline_seconds)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_modify_deadline_seconds();
}
inline const ::google::protobuf::RepeatedField<::int32_t>&
StreamingPullRequest::_internal_modify_deadline_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.modify_deadline_seconds_;
}
inline ::google::protobuf::RepeatedField<::int32_t>* PROTOBUF_NONNULL
StreamingPullRequest::_internal_mutable_modify_deadline_seconds() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.modify_deadline_seconds_;
}

// repeated string modify_deadline_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullRequest::_internal_modify_deadline_ack_ids_size() const {
  return _internal_modify_deadline_ack_ids().size();
}
inline int StreamingPullRequest::modify_deadline_ack_ids_size() const {
  return _internal_modify_deadline_ack_ids_size();
}
inline void StreamingPullRequest::clear_modify_deadline_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.modify_deadline_ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::add_modify_deadline_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_modify_deadline_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullRequest::modify_deadline_ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
  return _internal_modify_deadline_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::mutable_modify_deadline_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
  return _internal_mutable_modify_deadline_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullRequest::set_modify_deadline_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_modify_deadline_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullRequest::add_modify_deadline_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_modify_deadline_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullRequest::modify_deadline_ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
  return _internal_modify_deadline_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullRequest::mutable_modify_deadline_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullRequest.modify_deadline_ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_modify_deadline_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullRequest::_internal_modify_deadline_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.modify_deadline_ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullRequest::_internal_mutable_modify_deadline_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.modify_deadline_ack_ids_;
}

// int32 stream_ack_deadline_seconds = 5 [(.google.api.field_behavior) = REQUIRED];
inline void StreamingPullRequest::clear_stream_ack_deadline_seconds() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_ack_deadline_seconds_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000080U);
}
inline ::int32_t StreamingPullRequest::stream_ack_deadline_seconds() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.stream_ack_deadline_seconds)
  return _internal_stream_ack_deadline_seconds();
}
inline void StreamingPullRequest::set_stream_ack_deadline_seconds(::int32_t value) {
  _internal_set_stream_ack_deadline_seconds(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000080U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.stream_ack_deadline_seconds)
}
inline ::int32_t StreamingPullRequest::_internal_stream_ack_deadline_seconds() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.stream_ack_deadline_seconds_;
}
inline void StreamingPullRequest::_internal_set_stream_ack_deadline_seconds(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.stream_ack_deadline_seconds_ = value;
}

// string client_id = 6 [(.google.api.field_behavior) = OPTIONAL];
inline void StreamingPullRequest::clear_client_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_id_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
}
inline const ::std::string& StreamingPullRequest::client_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.client_id)
  return _internal_client_id();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void StreamingPullRequest::set_client_id(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  _impl_.client_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.client_id)
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::mutable_client_id()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  ::std::string* _s = _internal_mutable_client_id();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullRequest.client_id)
  return _s;
}
inline const ::std::string& StreamingPullRequest::_internal_client_id() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.client_id_.Get();
}
inline void StreamingPullRequest::_internal_set_client_id(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.client_id_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullRequest::_internal_mutable_client_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.client_id_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE StreamingPullRequest::release_client_id() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.StreamingPullRequest.client_id)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000010U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  auto* released = _impl_.client_id_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.client_id_.Set("", GetArena());
  }
  return released;
}
inline void StreamingPullRequest::set_allocated_client_id(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000010U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000010U);
  }
  _impl_.client_id_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.client_id_.IsDefault()) {
    _impl_.client_id_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.StreamingPullRequest.client_id)
}

// int64 max_outstanding_messages = 7 [(.google.api.field_behavior) = OPTIONAL];
inline void StreamingPullRequest::clear_max_outstanding_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_outstanding_messages_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000020U);
}
inline ::int64_t StreamingPullRequest::max_outstanding_messages() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.max_outstanding_messages)
  return _internal_max_outstanding_messages();
}
inline void StreamingPullRequest::set_max_outstanding_messages(::int64_t value) {
  _internal_set_max_outstanding_messages(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000020U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.max_outstanding_messages)
}
inline ::int64_t StreamingPullRequest::_internal_max_outstanding_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_outstanding_messages_;
}
inline void StreamingPullRequest::_internal_set_max_outstanding_messages(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_outstanding_messages_ = value;
}

// int64 max_outstanding_bytes = 8 [(.google.api.field_behavior) = OPTIONAL];
inline void StreamingPullRequest::clear_max_outstanding_bytes() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_outstanding_bytes_ = ::int64_t{0};
  ClearHasBit(_impl_._has_bits_[0], 0x00000040U);
}
inline ::int64_t StreamingPullRequest::max_outstanding_bytes() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullRequest.max_outstanding_bytes)
  return _internal_max_outstanding_bytes();
}
inline void StreamingPullRequest::set_max_outstanding_bytes(::int64_t value) {
  _internal_set_max_outstanding_bytes(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000040U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullRequest.max_outstanding_bytes)
}
inline ::int64_t StreamingPullRequest::_internal_max_outstanding_bytes() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.max_outstanding_bytes_;
}
inline void StreamingPullRequest::_internal_set_max_outstanding_bytes(::int64_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.max_outstanding_bytes_ = value;
}

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

// StreamingPullResponse_AcknowledgeConfirmation

// repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_AcknowledgeConfirmation::_internal_ack_ids_size() const {
  return _internal_ack_ids().size();
}
inline int StreamingPullResponse_AcknowledgeConfirmation::ack_ids_size() const {
  return _internal_ack_ids_size();
}
inline void StreamingPullResponse_AcknowledgeConfirmation::clear_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::add_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_AcknowledgeConfirmation::ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
  return _internal_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::mutable_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
  return _internal_mutable_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::set_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::add_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_AcknowledgeConfirmation::ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
  return _internal_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::mutable_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_AcknowledgeConfirmation::_internal_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::_internal_mutable_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.ack_ids_;
}

// repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_AcknowledgeConfirmation::_internal_invalid_ack_ids_size() const {
  return _internal_invalid_ack_ids().size();
}
inline int StreamingPullResponse_AcknowledgeConfirmation::invalid_ack_ids_size() const {
  return _internal_invalid_ack_ids_size();
}
inline void StreamingPullResponse_AcknowledgeConfirmation::clear_invalid_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.invalid_ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::add_invalid_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_invalid_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_AcknowledgeConfirmation::invalid_ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
  return _internal_invalid_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::mutable_invalid_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
  return _internal_mutable_invalid_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::set_invalid_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_invalid_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::add_invalid_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_invalid_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_AcknowledgeConfirmation::invalid_ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
  return _internal_invalid_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::mutable_invalid_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.invalid_ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_invalid_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_AcknowledgeConfirmation::_internal_invalid_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.invalid_ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::_internal_mutable_invalid_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.invalid_ack_ids_;
}

// repeated string unordered_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_AcknowledgeConfirmation::_internal_unordered_ack_ids_size() const {
  return _internal_unordered_ack_ids().size();
}
inline int StreamingPullResponse_AcknowledgeConfirmation::unordered_ack_ids_size() const {
  return _internal_unordered_ack_ids_size();
}
inline void StreamingPullResponse_AcknowledgeConfirmation::clear_unordered_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.unordered_ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::add_unordered_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_unordered_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_AcknowledgeConfirmation::unordered_ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
  return _internal_unordered_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::mutable_unordered_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
  return _internal_mutable_unordered_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::set_unordered_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_unordered_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::add_unordered_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_unordered_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_AcknowledgeConfirmation::unordered_ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
  return _internal_unordered_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::mutable_unordered_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.unordered_ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_unordered_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_AcknowledgeConfirmation::_internal_unordered_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.unordered_ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::_internal_mutable_unordered_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.unordered_ack_ids_;
}

// repeated string temporary_failed_ack_ids = 4 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_AcknowledgeConfirmation::_internal_temporary_failed_ack_ids_size() const {
  return _internal_temporary_failed_ack_ids().size();
}
inline int StreamingPullResponse_AcknowledgeConfirmation::temporary_failed_ack_ids_size() const {
  return _internal_temporary_failed_ack_ids_size();
}
inline void StreamingPullResponse_AcknowledgeConfirmation::clear_temporary_failed_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.temporary_failed_ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::add_temporary_failed_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_temporary_failed_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_AcknowledgeConfirmation::temporary_failed_ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
  return _internal_temporary_failed_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_AcknowledgeConfirmation::mutable_temporary_failed_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
  return _internal_mutable_temporary_failed_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::set_temporary_failed_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_temporary_failed_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_AcknowledgeConfirmation::add_temporary_failed_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_temporary_failed_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_AcknowledgeConfirmation::temporary_failed_ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
  return _internal_temporary_failed_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::mutable_temporary_failed_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation.temporary_failed_ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_temporary_failed_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_AcknowledgeConfirmation::_internal_temporary_failed_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.temporary_failed_ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_AcknowledgeConfirmation::_internal_mutable_temporary_failed_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.temporary_failed_ack_ids_;
}

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

// StreamingPullResponse_ModifyAckDeadlineConfirmation

// repeated string ack_ids = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_ack_ids_size() const {
  return _internal_ack_ids().size();
}
inline int StreamingPullResponse_ModifyAckDeadlineConfirmation::ack_ids_size() const {
  return _internal_ack_ids_size();
}
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::clear_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_ModifyAckDeadlineConfirmation::add_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_ModifyAckDeadlineConfirmation::ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
  return _internal_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_ModifyAckDeadlineConfirmation::mutable_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
  return _internal_mutable_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::set_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::add_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_ModifyAckDeadlineConfirmation::ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
  return _internal_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_ModifyAckDeadlineConfirmation::mutable_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_mutable_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.ack_ids_;
}

// repeated string invalid_ack_ids = 2 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_invalid_ack_ids_size() const {
  return _internal_invalid_ack_ids().size();
}
inline int StreamingPullResponse_ModifyAckDeadlineConfirmation::invalid_ack_ids_size() const {
  return _internal_invalid_ack_ids_size();
}
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::clear_invalid_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.invalid_ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_ModifyAckDeadlineConfirmation::add_invalid_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_invalid_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_ModifyAckDeadlineConfirmation::invalid_ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
  return _internal_invalid_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_ModifyAckDeadlineConfirmation::mutable_invalid_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
  return _internal_mutable_invalid_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::set_invalid_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_invalid_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::add_invalid_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_invalid_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_ModifyAckDeadlineConfirmation::invalid_ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
  return _internal_invalid_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_ModifyAckDeadlineConfirmation::mutable_invalid_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.invalid_ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_invalid_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_invalid_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.invalid_ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_mutable_invalid_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.invalid_ack_ids_;
}

// repeated string temporary_failed_ack_ids = 3 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_temporary_failed_ack_ids_size() const {
  return _internal_temporary_failed_ack_ids().size();
}
inline int StreamingPullResponse_ModifyAckDeadlineConfirmation::temporary_failed_ack_ids_size() const {
  return _internal_temporary_failed_ack_ids_size();
}
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::clear_temporary_failed_ack_ids() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.temporary_failed_ack_ids_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_ModifyAckDeadlineConfirmation::add_temporary_failed_ack_ids()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::std::string* _s =
      _internal_mutable_temporary_failed_ack_ids()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add_mutable:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
  return _s;
}
inline const ::std::string& StreamingPullResponse_ModifyAckDeadlineConfirmation::temporary_failed_ack_ids(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
  return _internal_temporary_failed_ack_ids().Get(index);
}
inline ::std::string* PROTOBUF_NONNULL StreamingPullResponse_ModifyAckDeadlineConfirmation::mutable_temporary_failed_ack_ids(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
  return _internal_mutable_temporary_failed_ack_ids()->Mutable(index);
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::set_temporary_failed_ack_ids(int index, Arg_&& value, Args_... args) {
  ::google::protobuf::internal::AssignToString(
      *_internal_mutable_temporary_failed_ack_ids()->Mutable(index),
      ::std::forward<Arg_>(value), args... );
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
}
template <typename Arg_, typename... Args_>
inline void StreamingPullResponse_ModifyAckDeadlineConfirmation::add_temporary_failed_ack_ids(Arg_&& value, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::protobuf::internal::AddToRepeatedPtrField(
      ::google::protobuf::MessageLite::internal_visibility(), GetArena(),
      *_internal_mutable_temporary_failed_ack_ids(), ::std::forward<Arg_>(value),
      args... );
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>& StreamingPullResponse_ModifyAckDeadlineConfirmation::temporary_failed_ack_ids()
    const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
  return _internal_temporary_failed_ack_ids();
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_ModifyAckDeadlineConfirmation::mutable_temporary_failed_ack_ids() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation.temporary_failed_ack_ids)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_temporary_failed_ack_ids();
}
inline const ::google::protobuf::RepeatedPtrField<::std::string>&
StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_temporary_failed_ack_ids() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.temporary_failed_ack_ids_;
}
inline ::google::protobuf::RepeatedPtrField<::std::string>* PROTOBUF_NONNULL
StreamingPullResponse_ModifyAckDeadlineConfirmation::_internal_mutable_temporary_failed_ack_ids() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.temporary_failed_ack_ids_;
}

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

// StreamingPullResponse_SubscriptionProperties

// bool exactly_once_delivery_enabled = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void StreamingPullResponse_SubscriptionProperties::clear_exactly_once_delivery_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.exactly_once_delivery_enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline bool StreamingPullResponse_SubscriptionProperties::exactly_once_delivery_enabled() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.exactly_once_delivery_enabled)
  return _internal_exactly_once_delivery_enabled();
}
inline void StreamingPullResponse_SubscriptionProperties::set_exactly_once_delivery_enabled(bool value) {
  _internal_set_exactly_once_delivery_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.exactly_once_delivery_enabled)
}
inline bool StreamingPullResponse_SubscriptionProperties::_internal_exactly_once_delivery_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.exactly_once_delivery_enabled_;
}
inline void StreamingPullResponse_SubscriptionProperties::_internal_set_exactly_once_delivery_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.exactly_once_delivery_enabled_ = value;
}

// bool message_ordering_enabled = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void StreamingPullResponse_SubscriptionProperties::clear_message_ordering_enabled() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_ordering_enabled_ = false;
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline bool StreamingPullResponse_SubscriptionProperties::message_ordering_enabled() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.message_ordering_enabled)
  return _internal_message_ordering_enabled();
}
inline void StreamingPullResponse_SubscriptionProperties::set_message_ordering_enabled(bool value) {
  _internal_set_message_ordering_enabled(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.StreamingPullResponse.SubscriptionProperties.message_ordering_enabled)
}
inline bool StreamingPullResponse_SubscriptionProperties::_internal_message_ordering_enabled() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.message_ordering_enabled_;
}
inline void StreamingPullResponse_SubscriptionProperties::_internal_set_message_ordering_enabled(bool value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.message_ordering_enabled_ = value;
}

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

// StreamingPullResponse

// repeated .google.pubsub.v1.ReceivedMessage received_messages = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int StreamingPullResponse::_internal_received_messages_size() const {
  return _internal_received_messages().size();
}
inline int StreamingPullResponse::received_messages_size() const {
  return _internal_received_messages_size();
}
inline void StreamingPullResponse::clear_received_messages() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.received_messages_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::ReceivedMessage& StreamingPullResponse::received_messages(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.received_messages)
  return _internal_received_messages().Get(index);
}
inline ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL StreamingPullResponse::mutable_received_messages(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.received_messages)
  return _internal_mutable_received_messages()->Mutable(index);
}
inline ::google::pubsub::v1::ReceivedMessage* PROTOBUF_NONNULL StreamingPullResponse::add_received_messages()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::pubsub::v1::ReceivedMessage* _add =
      _internal_mutable_received_messages()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.StreamingPullResponse.received_messages)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>& StreamingPullResponse::received_messages() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.StreamingPullResponse.received_messages)
  return _internal_received_messages();
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL
StreamingPullResponse::mutable_received_messages() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.StreamingPullResponse.received_messages)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_received_messages();
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>&
StreamingPullResponse::_internal_received_messages() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.received_messages_;
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::ReceivedMessage>* PROTOBUF_NONNULL
StreamingPullResponse::_internal_mutable_received_messages() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.received_messages_;
}

// .google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation acknowledge_confirmation = 5 [(.google.api.field_behavior) = OPTIONAL];
inline bool StreamingPullResponse::has_acknowledge_confirmation() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000008U);
  PROTOBUF_ASSUME(!value || _impl_.acknowledge_confirmation_ != nullptr);
  return value;
}
inline void StreamingPullResponse::clear_acknowledge_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.acknowledge_confirmation_ != nullptr) _impl_.acknowledge_confirmation_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation& StreamingPullResponse::_internal_acknowledge_confirmation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* p = _impl_.acknowledge_confirmation_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation>(&::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation_globals_);
}
inline const ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation& StreamingPullResponse::acknowledge_confirmation() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.acknowledge_confirmation)
  return _internal_acknowledge_confirmation();
}
inline void StreamingPullResponse::unsafe_arena_set_allocated_acknowledge_confirmation(
    ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.acknowledge_confirmation_);
  }
  _impl_.acknowledge_confirmation_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.StreamingPullResponse.acknowledge_confirmation)
}
inline ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE StreamingPullResponse::release_acknowledge_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* released = _impl_.acknowledge_confirmation_;
  _impl_.acknowledge_confirmation_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE StreamingPullResponse::unsafe_arena_release_acknowledge_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.StreamingPullResponse.acknowledge_confirmation)

  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* temp = _impl_.acknowledge_confirmation_;
  _impl_.acknowledge_confirmation_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL StreamingPullResponse::_internal_mutable_acknowledge_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.acknowledge_confirmation_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation>(GetArena());
    _impl_.acknowledge_confirmation_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation*>(p);
  }
  return _impl_.acknowledge_confirmation_;
}
inline ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NONNULL StreamingPullResponse::mutable_acknowledge_confirmation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  ::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* _msg = _internal_mutable_acknowledge_confirmation();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.acknowledge_confirmation)
  return _msg;
}
inline void StreamingPullResponse::set_allocated_acknowledge_confirmation(::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.acknowledge_confirmation_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
  }

  _impl_.acknowledge_confirmation_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_AcknowledgeConfirmation*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.StreamingPullResponse.acknowledge_confirmation)
}

// .google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation modify_ack_deadline_confirmation = 3 [(.google.api.field_behavior) = OPTIONAL];
inline bool StreamingPullResponse::has_modify_ack_deadline_confirmation() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.modify_ack_deadline_confirmation_ != nullptr);
  return value;
}
inline void StreamingPullResponse::clear_modify_ack_deadline_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.modify_ack_deadline_confirmation_ != nullptr) _impl_.modify_ack_deadline_confirmation_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation& StreamingPullResponse::_internal_modify_ack_deadline_confirmation() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* p = _impl_.modify_ack_deadline_confirmation_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation>(&::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation_globals_);
}
inline const ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation& StreamingPullResponse::modify_ack_deadline_confirmation() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.modify_ack_deadline_confirmation)
  return _internal_modify_ack_deadline_confirmation();
}
inline void StreamingPullResponse::unsafe_arena_set_allocated_modify_ack_deadline_confirmation(
    ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.modify_ack_deadline_confirmation_);
  }
  _impl_.modify_ack_deadline_confirmation_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.StreamingPullResponse.modify_ack_deadline_confirmation)
}
inline ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE StreamingPullResponse::release_modify_ack_deadline_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* released = _impl_.modify_ack_deadline_confirmation_;
  _impl_.modify_ack_deadline_confirmation_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE StreamingPullResponse::unsafe_arena_release_modify_ack_deadline_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.StreamingPullResponse.modify_ack_deadline_confirmation)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* temp = _impl_.modify_ack_deadline_confirmation_;
  _impl_.modify_ack_deadline_confirmation_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL StreamingPullResponse::_internal_mutable_modify_ack_deadline_confirmation() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.modify_ack_deadline_confirmation_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation>(GetArena());
    _impl_.modify_ack_deadline_confirmation_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation*>(p);
  }
  return _impl_.modify_ack_deadline_confirmation_;
}
inline ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NONNULL StreamingPullResponse::mutable_modify_ack_deadline_confirmation()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* _msg = _internal_mutable_modify_ack_deadline_confirmation();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.modify_ack_deadline_confirmation)
  return _msg;
}
inline void StreamingPullResponse::set_allocated_modify_ack_deadline_confirmation(::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.modify_ack_deadline_confirmation_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.modify_ack_deadline_confirmation_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_ModifyAckDeadlineConfirmation*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.StreamingPullResponse.modify_ack_deadline_confirmation)
}

// .google.pubsub.v1.StreamingPullResponse.SubscriptionProperties subscription_properties = 4 [(.google.api.field_behavior) = OPTIONAL];
inline bool StreamingPullResponse::has_subscription_properties() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.subscription_properties_ != nullptr);
  return value;
}
inline void StreamingPullResponse::clear_subscription_properties() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.subscription_properties_ != nullptr) _impl_.subscription_properties_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties& StreamingPullResponse::_internal_subscription_properties() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* p = _impl_.subscription_properties_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties>(&::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties_globals_);
}
inline const ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties& StreamingPullResponse::subscription_properties() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.StreamingPullResponse.subscription_properties)
  return _internal_subscription_properties();
}
inline void StreamingPullResponse::unsafe_arena_set_allocated_subscription_properties(
    ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.subscription_properties_);
  }
  _impl_.subscription_properties_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.StreamingPullResponse.subscription_properties)
}
inline ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE StreamingPullResponse::release_subscription_properties() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* released = _impl_.subscription_properties_;
  _impl_.subscription_properties_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE StreamingPullResponse::unsafe_arena_release_subscription_properties() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.StreamingPullResponse.subscription_properties)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* temp = _impl_.subscription_properties_;
  _impl_.subscription_properties_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL StreamingPullResponse::_internal_mutable_subscription_properties() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.subscription_properties_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties>(GetArena());
    _impl_.subscription_properties_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties*>(p);
  }
  return _impl_.subscription_properties_;
}
inline ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NONNULL StreamingPullResponse::mutable_subscription_properties()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* _msg = _internal_mutable_subscription_properties();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.StreamingPullResponse.subscription_properties)
  return _msg;
}
inline void StreamingPullResponse::set_allocated_subscription_properties(::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.subscription_properties_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.subscription_properties_ = reinterpret_cast<::google::pubsub::v1::StreamingPullResponse_SubscriptionProperties*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.StreamingPullResponse.subscription_properties)
}

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

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

// CreateSnapshotRequest

// string name = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void CreateSnapshotRequest::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& CreateSnapshotRequest::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CreateSnapshotRequest.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CreateSnapshotRequest::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CreateSnapshotRequest.name)
}
inline ::std::string* PROTOBUF_NONNULL CreateSnapshotRequest::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CreateSnapshotRequest.name)
  return _s;
}
inline const ::std::string& CreateSnapshotRequest::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void CreateSnapshotRequest::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CreateSnapshotRequest::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CreateSnapshotRequest::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CreateSnapshotRequest.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void CreateSnapshotRequest::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CreateSnapshotRequest.name)
}

// string subscription = 2 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void CreateSnapshotRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& CreateSnapshotRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.CreateSnapshotRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void CreateSnapshotRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.CreateSnapshotRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL CreateSnapshotRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.CreateSnapshotRequest.subscription)
  return _s;
}
inline const ::std::string& CreateSnapshotRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void CreateSnapshotRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL CreateSnapshotRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE CreateSnapshotRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.CreateSnapshotRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void CreateSnapshotRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.CreateSnapshotRequest.subscription)
}

// map<string, string> labels = 3 [(.google.api.field_behavior) = OPTIONAL];
inline int CreateSnapshotRequest::_internal_labels_size() const {
  return _internal_labels().size();
}
inline int CreateSnapshotRequest::labels_size() const {
  return _internal_labels_size();
}
inline void CreateSnapshotRequest::clear_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.labels_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& CreateSnapshotRequest::_internal_labels() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.labels_.GetMap();
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& CreateSnapshotRequest::labels() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:google.pubsub.v1.CreateSnapshotRequest.labels)
  return _internal_labels();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL CreateSnapshotRequest::_internal_mutable_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.labels_.MutableMap();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL CreateSnapshotRequest::mutable_labels()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_mutable_map:google.pubsub.v1.CreateSnapshotRequest.labels)
  return _internal_mutable_labels();
}

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

// UpdateSnapshotRequest

// .google.pubsub.v1.Snapshot snapshot = 1 [(.google.api.field_behavior) = REQUIRED];
inline bool UpdateSnapshotRequest::has_snapshot() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000001U);
  PROTOBUF_ASSUME(!value || _impl_.snapshot_ != nullptr);
  return value;
}
inline void UpdateSnapshotRequest::clear_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.snapshot_ != nullptr) _impl_.snapshot_->Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::Snapshot& UpdateSnapshotRequest::_internal_snapshot() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::pubsub::v1::Snapshot* p = _impl_.snapshot_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::pubsub::v1::Snapshot>(&::google::pubsub::v1::Snapshot_globals_);
}
inline const ::google::pubsub::v1::Snapshot& UpdateSnapshotRequest::snapshot() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.UpdateSnapshotRequest.snapshot)
  return _internal_snapshot();
}
inline void UpdateSnapshotRequest::unsafe_arena_set_allocated_snapshot(
    ::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.snapshot_);
  }
  _impl_.snapshot_ = reinterpret_cast<::google::pubsub::v1::Snapshot*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.UpdateSnapshotRequest.snapshot)
}
inline ::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE UpdateSnapshotRequest::release_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Snapshot* released = _impl_.snapshot_;
  _impl_.snapshot_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE UpdateSnapshotRequest::unsafe_arena_release_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.UpdateSnapshotRequest.snapshot)

  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Snapshot* temp = _impl_.snapshot_;
  _impl_.snapshot_ = nullptr;
  return temp;
}
inline ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL UpdateSnapshotRequest::_internal_mutable_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.snapshot_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::pubsub::v1::Snapshot>(GetArena());
    _impl_.snapshot_ = reinterpret_cast<::google::pubsub::v1::Snapshot*>(p);
  }
  return _impl_.snapshot_;
}
inline ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL UpdateSnapshotRequest::mutable_snapshot()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::google::pubsub::v1::Snapshot* _msg = _internal_mutable_snapshot();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.UpdateSnapshotRequest.snapshot)
  return _msg;
}
inline void UpdateSnapshotRequest::set_allocated_snapshot(::google::pubsub::v1::Snapshot* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.snapshot_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = value->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }

  _impl_.snapshot_ = reinterpret_cast<::google::pubsub::v1::Snapshot*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.UpdateSnapshotRequest.snapshot)
}

// .google.protobuf.FieldMask update_mask = 2 [(.google.api.field_behavior) = REQUIRED];
inline bool UpdateSnapshotRequest::has_update_mask() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000002U);
  PROTOBUF_ASSUME(!value || _impl_.update_mask_ != nullptr);
  return value;
}
inline const ::google::protobuf::FieldMask& UpdateSnapshotRequest::_internal_update_mask() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::FieldMask* p = _impl_.update_mask_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::FieldMask>(&::google::protobuf::FieldMask_globals_);
}
inline const ::google::protobuf::FieldMask& UpdateSnapshotRequest::update_mask() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.UpdateSnapshotRequest.update_mask)
  return _internal_update_mask();
}
inline void UpdateSnapshotRequest::unsafe_arena_set_allocated_update_mask(
    ::google::protobuf::FieldMask* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.update_mask_);
  }
  _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.UpdateSnapshotRequest.update_mask)
}
inline ::google::protobuf::FieldMask* PROTOBUF_NULLABLE UpdateSnapshotRequest::release_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* released = _impl_.update_mask_;
  _impl_.update_mask_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NULLABLE UpdateSnapshotRequest::unsafe_arena_release_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.UpdateSnapshotRequest.update_mask)

  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* temp = _impl_.update_mask_;
  _impl_.update_mask_ = nullptr;
  return temp;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NONNULL UpdateSnapshotRequest::_internal_mutable_update_mask() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.update_mask_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::FieldMask>(GetArena());
    _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(p);
  }
  return _impl_.update_mask_;
}
inline ::google::protobuf::FieldMask* PROTOBUF_NONNULL UpdateSnapshotRequest::mutable_update_mask()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::google::protobuf::FieldMask* _msg = _internal_mutable_update_mask();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.UpdateSnapshotRequest.update_mask)
  return _msg;
}
inline void UpdateSnapshotRequest::set_allocated_update_mask(::google::protobuf::FieldMask* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.update_mask_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }

  _impl_.update_mask_ = reinterpret_cast<::google::protobuf::FieldMask*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.UpdateSnapshotRequest.update_mask)
}

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

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

// Snapshot

// string name = 1 [(.google.api.field_behavior) = OPTIONAL];
inline void Snapshot::clear_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& Snapshot::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Snapshot.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Snapshot::set_name(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Snapshot.name)
}
inline ::std::string* PROTOBUF_NONNULL Snapshot::mutable_name()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Snapshot.name)
  return _s;
}
inline const ::std::string& Snapshot::_internal_name() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.name_.Get();
}
inline void Snapshot::_internal_set_name(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.name_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Snapshot::_internal_mutable_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.name_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Snapshot::release_name() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Snapshot.name)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.name_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.name_.Set("", GetArena());
  }
  return released;
}
inline void Snapshot::set_allocated_name(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.name_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.name_.IsDefault()) {
    _impl_.name_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Snapshot.name)
}

// string topic = 2 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
inline void Snapshot::clear_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& Snapshot::topic() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Snapshot.topic)
  return _internal_topic();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void Snapshot::set_topic(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.topic_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.Snapshot.topic)
}
inline ::std::string* PROTOBUF_NONNULL Snapshot::mutable_topic()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_topic();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Snapshot.topic)
  return _s;
}
inline const ::std::string& Snapshot::_internal_topic() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.topic_.Get();
}
inline void Snapshot::_internal_set_topic(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.topic_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL Snapshot::_internal_mutable_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.topic_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE Snapshot::release_topic() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Snapshot.topic)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.topic_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.topic_.Set("", GetArena());
  }
  return released;
}
inline void Snapshot::set_allocated_topic(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.topic_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.topic_.IsDefault()) {
    _impl_.topic_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Snapshot.topic)
}

// .google.protobuf.Timestamp expire_time = 3 [(.google.api.field_behavior) = OPTIONAL];
inline bool Snapshot::has_expire_time() const {
  bool value = CheckHasBit(_impl_._has_bits_[0], 0x00000004U);
  PROTOBUF_ASSUME(!value || _impl_.expire_time_ != nullptr);
  return value;
}
inline const ::google::protobuf::Timestamp& Snapshot::_internal_expire_time() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  const ::google::protobuf::Timestamp* p = _impl_.expire_time_;
  return p != nullptr ? *p : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& Snapshot::expire_time() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.Snapshot.expire_time)
  return _internal_expire_time();
}
inline void Snapshot::unsafe_arena_set_allocated_expire_time(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.expire_time_);
  }
  _impl_.expire_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.Snapshot.expire_time)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE Snapshot::release_expire_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::protobuf::Timestamp* released = _impl_.expire_time_;
  _impl_.expire_time_ = nullptr;
  if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) {
    auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    if (GetArena() == nullptr) {
      delete old;
    }
  } else {
    if (GetArena() != nullptr) {
      released = ::google::protobuf::internal::DuplicateIfNonNull(released);
    }
  }
  return released;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE Snapshot::unsafe_arena_release_expire_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.Snapshot.expire_time)

  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::protobuf::Timestamp* temp = _impl_.expire_time_;
  _impl_.expire_time_ = nullptr;
  return temp;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL Snapshot::_internal_mutable_expire_time() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (_impl_.expire_time_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
    _impl_.expire_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(p);
  }
  return _impl_.expire_time_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL Snapshot::mutable_expire_time()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  ::google::protobuf::Timestamp* _msg = _internal_mutable_expire_time();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.Snapshot.expire_time)
  return _msg;
}
inline void Snapshot::set_allocated_expire_time(::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (message_arena == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.expire_time_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::Message*>(value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
  }

  _impl_.expire_time_ = reinterpret_cast<::google::protobuf::Timestamp*>(value);
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.Snapshot.expire_time)
}

// map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
inline int Snapshot::_internal_labels_size() const {
  return _internal_labels().size();
}
inline int Snapshot::labels_size() const {
  return _internal_labels_size();
}
inline void Snapshot::clear_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.labels_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000008U);
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& Snapshot::_internal_labels() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.labels_.GetMap();
}
inline const ::google::protobuf::Map<::std::string, ::std::string>& Snapshot::labels() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:google.pubsub.v1.Snapshot.labels)
  return _internal_labels();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL Snapshot::_internal_mutable_labels() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.labels_.MutableMap();
}
inline ::google::protobuf::Map<::std::string, ::std::string>* PROTOBUF_NONNULL Snapshot::mutable_labels()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000008U);
  // @@protoc_insertion_point(field_mutable_map:google.pubsub.v1.Snapshot.labels)
  return _internal_mutable_labels();
}

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

// GetSnapshotRequest

// string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void GetSnapshotRequest::clear_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.snapshot_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& GetSnapshotRequest::snapshot() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.GetSnapshotRequest.snapshot)
  return _internal_snapshot();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void GetSnapshotRequest::set_snapshot(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.snapshot_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.GetSnapshotRequest.snapshot)
}
inline ::std::string* PROTOBUF_NONNULL GetSnapshotRequest::mutable_snapshot()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_snapshot();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.GetSnapshotRequest.snapshot)
  return _s;
}
inline const ::std::string& GetSnapshotRequest::_internal_snapshot() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.snapshot_.Get();
}
inline void GetSnapshotRequest::_internal_set_snapshot(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.snapshot_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL GetSnapshotRequest::_internal_mutable_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.snapshot_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE GetSnapshotRequest::release_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.GetSnapshotRequest.snapshot)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.snapshot_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.snapshot_.Set("", GetArena());
  }
  return released;
}
inline void GetSnapshotRequest::set_allocated_snapshot(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.snapshot_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.snapshot_.IsDefault()) {
    _impl_.snapshot_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.GetSnapshotRequest.snapshot)
}

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

// ListSnapshotsRequest

// string project = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void ListSnapshotsRequest::clear_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.project_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& ListSnapshotsRequest::project() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSnapshotsRequest.project)
  return _internal_project();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListSnapshotsRequest::set_project(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.project_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSnapshotsRequest.project)
}
inline ::std::string* PROTOBUF_NONNULL ListSnapshotsRequest::mutable_project()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_project();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSnapshotsRequest.project)
  return _s;
}
inline const ::std::string& ListSnapshotsRequest::_internal_project() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.project_.Get();
}
inline void ListSnapshotsRequest::_internal_set_project(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.project_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListSnapshotsRequest::_internal_mutable_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.project_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListSnapshotsRequest::release_project() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListSnapshotsRequest.project)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.project_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.project_.Set("", GetArena());
  }
  return released;
}
inline void ListSnapshotsRequest::set_allocated_project(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.project_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.project_.IsDefault()) {
    _impl_.project_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListSnapshotsRequest.project)
}

// int32 page_size = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListSnapshotsRequest::clear_page_size() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = 0;
  ClearHasBit(_impl_._has_bits_[0], 0x00000004U);
}
inline ::int32_t ListSnapshotsRequest::page_size() const {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSnapshotsRequest.page_size)
  return _internal_page_size();
}
inline void ListSnapshotsRequest::set_page_size(::int32_t value) {
  _internal_set_page_size(value);
  SetHasBit(_impl_._has_bits_[0], 0x00000004U);
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSnapshotsRequest.page_size)
}
inline ::int32_t ListSnapshotsRequest::_internal_page_size() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_size_;
}
inline void ListSnapshotsRequest::_internal_set_page_size(::int32_t value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_size_ = value;
}

// string page_token = 3 [(.google.api.field_behavior) = OPTIONAL];
inline void ListSnapshotsRequest::clear_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListSnapshotsRequest::page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSnapshotsRequest.page_token)
  return _internal_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListSnapshotsRequest::set_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSnapshotsRequest.page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListSnapshotsRequest::mutable_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSnapshotsRequest.page_token)
  return _s;
}
inline const ::std::string& ListSnapshotsRequest::_internal_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.page_token_.Get();
}
inline void ListSnapshotsRequest::_internal_set_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListSnapshotsRequest::_internal_mutable_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListSnapshotsRequest::release_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListSnapshotsRequest.page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListSnapshotsRequest::set_allocated_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.page_token_.IsDefault()) {
    _impl_.page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListSnapshotsRequest.page_token)
}

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

// ListSnapshotsResponse

// repeated .google.pubsub.v1.Snapshot snapshots = 1 [(.google.api.field_behavior) = OPTIONAL];
inline int ListSnapshotsResponse::_internal_snapshots_size() const {
  return _internal_snapshots().size();
}
inline int ListSnapshotsResponse::snapshots_size() const {
  return _internal_snapshots_size();
}
inline void ListSnapshotsResponse::clear_snapshots() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.snapshots_.Clear();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::google::pubsub::v1::Snapshot& ListSnapshotsResponse::snapshots(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSnapshotsResponse.snapshots)
  return _internal_snapshots().Get(index);
}
inline ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL ListSnapshotsResponse::mutable_snapshots(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSnapshotsResponse.snapshots)
  return _internal_mutable_snapshots()->Mutable(index);
}
inline ::google::pubsub::v1::Snapshot* PROTOBUF_NONNULL ListSnapshotsResponse::add_snapshots()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::google::pubsub::v1::Snapshot* _add =
      _internal_mutable_snapshots()->InternalAddWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), GetArena());
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_add:google.pubsub.v1.ListSnapshotsResponse.snapshots)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>& ListSnapshotsResponse::snapshots() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:google.pubsub.v1.ListSnapshotsResponse.snapshots)
  return _internal_snapshots();
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>* PROTOBUF_NONNULL
ListSnapshotsResponse::mutable_snapshots() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  // @@protoc_insertion_point(field_mutable_list:google.pubsub.v1.ListSnapshotsResponse.snapshots)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _internal_mutable_snapshots();
}
inline const ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>&
ListSnapshotsResponse::_internal_snapshots() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.snapshots_;
}
inline ::google::protobuf::RepeatedPtrField<::google::pubsub::v1::Snapshot>* PROTOBUF_NONNULL
ListSnapshotsResponse::_internal_mutable_snapshots() {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return &_impl_.snapshots_;
}

// string next_page_token = 2 [(.google.api.field_behavior) = OPTIONAL];
inline void ListSnapshotsResponse::clear_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
}
inline const ::std::string& ListSnapshotsResponse::next_page_token() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.ListSnapshotsResponse.next_page_token)
  return _internal_next_page_token();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void ListSnapshotsResponse::set_next_page_token(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  _impl_.next_page_token_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.ListSnapshotsResponse.next_page_token)
}
inline ::std::string* PROTOBUF_NONNULL ListSnapshotsResponse::mutable_next_page_token()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  ::std::string* _s = _internal_mutable_next_page_token();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.ListSnapshotsResponse.next_page_token)
  return _s;
}
inline const ::std::string& ListSnapshotsResponse::_internal_next_page_token() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.next_page_token_.Get();
}
inline void ListSnapshotsResponse::_internal_set_next_page_token(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.next_page_token_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL ListSnapshotsResponse::_internal_mutable_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.next_page_token_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE ListSnapshotsResponse::release_next_page_token() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.ListSnapshotsResponse.next_page_token)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000002U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  auto* released = _impl_.next_page_token_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  return released;
}
inline void ListSnapshotsResponse::set_allocated_next_page_token(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000002U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000002U);
  }
  _impl_.next_page_token_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.next_page_token_.IsDefault()) {
    _impl_.next_page_token_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.ListSnapshotsResponse.next_page_token)
}

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

// DeleteSnapshotRequest

// string snapshot = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void DeleteSnapshotRequest::clear_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.snapshot_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& DeleteSnapshotRequest::snapshot() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.DeleteSnapshotRequest.snapshot)
  return _internal_snapshot();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void DeleteSnapshotRequest::set_snapshot(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.snapshot_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.DeleteSnapshotRequest.snapshot)
}
inline ::std::string* PROTOBUF_NONNULL DeleteSnapshotRequest::mutable_snapshot()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_snapshot();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.DeleteSnapshotRequest.snapshot)
  return _s;
}
inline const ::std::string& DeleteSnapshotRequest::_internal_snapshot() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.snapshot_.Get();
}
inline void DeleteSnapshotRequest::_internal_set_snapshot(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.snapshot_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL DeleteSnapshotRequest::_internal_mutable_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.snapshot_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE DeleteSnapshotRequest::release_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.DeleteSnapshotRequest.snapshot)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.snapshot_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.snapshot_.Set("", GetArena());
  }
  return released;
}
inline void DeleteSnapshotRequest::set_allocated_snapshot(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.snapshot_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.snapshot_.IsDefault()) {
    _impl_.snapshot_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.DeleteSnapshotRequest.snapshot)
}

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

// SeekRequest

// string subscription = 1 [(.google.api.field_behavior) = REQUIRED, (.google.api.resource_reference) = {
inline void SeekRequest::clear_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.ClearToEmpty();
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
}
inline const ::std::string& SeekRequest::subscription() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SeekRequest.subscription)
  return _internal_subscription();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SeekRequest::set_subscription(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  _impl_.subscription_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.SeekRequest.subscription)
}
inline ::std::string* PROTOBUF_NONNULL SeekRequest::mutable_subscription()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  ::std::string* _s = _internal_mutable_subscription();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.SeekRequest.subscription)
  return _s;
}
inline const ::std::string& SeekRequest::_internal_subscription() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  return _impl_.subscription_.Get();
}
inline void SeekRequest::_internal_set_subscription(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.subscription_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SeekRequest::_internal_mutable_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.subscription_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SeekRequest::release_subscription() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.SeekRequest.subscription)
  if (!CheckHasBit(_impl_._has_bits_[0], 0x00000001U)) {
    return nullptr;
  }
  ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  auto* released = _impl_.subscription_.Release();
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString()) {
    _impl_.subscription_.Set("", GetArena());
  }
  return released;
}
inline void SeekRequest::set_allocated_subscription(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (value != nullptr) {
    SetHasBit(_impl_._has_bits_[0], 0x00000001U);
  } else {
    ClearHasBit(_impl_._has_bits_[0], 0x00000001U);
  }
  _impl_.subscription_.SetAllocated(value, GetArena());
  if (::google::protobuf::internal::DebugHardenForceCopyDefaultString() && _impl_.subscription_.IsDefault()) {
    _impl_.subscription_.Set("", GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.SeekRequest.subscription)
}

// .google.protobuf.Timestamp time = 2 [(.google.api.field_behavior) = OPTIONAL];
inline bool SeekRequest::has_time() const {
  return target_case() == kTime;
}
inline bool SeekRequest::_internal_has_time() const {
  return target_case() == kTime;
}
inline void SeekRequest::set_has_time() {
  _impl_._oneof_case_[0] = kTime;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE SeekRequest::release_time() {
  // @@protoc_insertion_point(field_release:google.pubsub.v1.SeekRequest.time)
  if (target_case() == kTime) {
    clear_has_target();
    auto* temp = _impl_.target_.time_;
    if (GetArena() != nullptr) {
      temp = ::google::protobuf::internal::DuplicateIfNonNull(temp);
    }
    _impl_.target_.time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline const ::google::protobuf::Timestamp& SeekRequest::_internal_time() const {
  return target_case() == kTime ? static_cast<const ::google::protobuf::Timestamp&>(*_impl_.target_.time_)
                     : *::google::protobuf::internal::MessageGlobalsBase::ToDefaultInstance<::google::protobuf::Timestamp>(&::google::protobuf::Timestamp_globals_);
}
inline const ::google::protobuf::Timestamp& SeekRequest::time() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SeekRequest.time)
  return _internal_time();
}
inline ::google::protobuf::Timestamp* PROTOBUF_NULLABLE SeekRequest::unsafe_arena_release_time() {
  // @@protoc_insertion_point(field_unsafe_arena_release:google.pubsub.v1.SeekRequest.time)
  if (target_case() == kTime) {
    clear_has_target();
    auto* temp = _impl_.target_.time_;
    _impl_.target_.time_ = nullptr;
    return temp;
  } else {
    return nullptr;
  }
}
inline void SeekRequest::unsafe_arena_set_allocated_time(
    ::google::protobuf::Timestamp* PROTOBUF_NULLABLE value) {
  // We rely on the oneof clear method to free the earlier contents
  // of this oneof. We can directly use the pointer we're given to
  // set the new value.
  clear_target();
  if (value) {
    set_has_time();
    _impl_.target_.time_ = value;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:google.pubsub.v1.SeekRequest.time)
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL SeekRequest::_internal_mutable_time() {
  if (target_case() != kTime) {
    clear_target();
    set_has_time();
    _impl_.target_.time_ = 
        ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena());
  }
  return _impl_.target_.time_;
}
inline ::google::protobuf::Timestamp* PROTOBUF_NONNULL SeekRequest::mutable_time()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  ::google::protobuf::Timestamp* _msg = _internal_mutable_time();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.SeekRequest.time)
  return _msg;
}

// string snapshot = 3 [(.google.api.field_behavior) = OPTIONAL, (.google.api.resource_reference) = {
inline bool SeekRequest::has_snapshot() const {
  return target_case() == kSnapshot;
}
inline void SeekRequest::set_has_snapshot() {
  _impl_._oneof_case_[0] = kSnapshot;
}
inline void SeekRequest::clear_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (target_case() == kSnapshot) {
    _impl_.target_.snapshot_.Destroy();
    clear_has_target();
  }
}
inline const ::std::string& SeekRequest::snapshot() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:google.pubsub.v1.SeekRequest.snapshot)
  return _internal_snapshot();
}
template <typename Arg_, typename... Args_>
PROTOBUF_ALWAYS_INLINE void SeekRequest::set_snapshot(Arg_&& arg, Args_... args) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (target_case() != kSnapshot) {
    clear_target();

    set_has_snapshot();
    _impl_.target_.snapshot_.InitDefault();
  }
  _impl_.target_.snapshot_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:google.pubsub.v1.SeekRequest.snapshot)
}
inline ::std::string* PROTOBUF_NONNULL SeekRequest::mutable_snapshot()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  if (target_case() != kSnapshot) {
    clear_target();

    set_has_snapshot();
    _impl_.target_.snapshot_.InitDefault();
  }
  ::std::string* _s = _internal_mutable_snapshot();
  // @@protoc_insertion_point(field_mutable:google.pubsub.v1.SeekRequest.snapshot)
  return _s;
}
inline const ::std::string& SeekRequest::_internal_snapshot() const {
  ::google::protobuf::internal::TSanRead(&_impl_);
  if (target_case() != kSnapshot) {
    return ::google::protobuf::internal::GetEmptyStringAlreadyInited();
  }
  return _impl_.target_.snapshot_.Get();
}
inline void SeekRequest::_internal_set_snapshot(const ::std::string& value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  _impl_.target_.snapshot_.Set(value, GetArena());
}
inline ::std::string* PROTOBUF_NONNULL SeekRequest::_internal_mutable_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  return _impl_.target_.snapshot_.Mutable( GetArena());
}
inline ::std::string* PROTOBUF_NULLABLE SeekRequest::release_snapshot() {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  // @@protoc_insertion_point(field_release:google.pubsub.v1.SeekRequest.snapshot)
  if (target_case() != kSnapshot) {
    return nullptr;
  }
  clear_has_target();
  return _impl_.target_.snapshot_.Release();
}
inline void SeekRequest::set_allocated_snapshot(::std::string* PROTOBUF_NULLABLE value) {
  ::google::protobuf::internal::TSanWrite(&_impl_);
  if (has_target()) {
    clear_target();
  }
  if (value != nullptr) {
    set_has_snapshot();
    _impl_.target_.snapshot_.InitAllocated(value, GetArena());
  }
  // @@protoc_insertion_point(field_set_allocated:google.pubsub.v1.SeekRequest.snapshot)
}

inline bool SeekRequest::has_target() const {
  return target_case() != TARGET_NOT_SET;
}
inline void SeekRequest::clear_has_target() {
  _impl_._oneof_case_[0] = TARGET_NOT_SET;
}
inline SeekRequest::TargetCase SeekRequest::target_case() const {
  return SeekRequest::TargetCase(_impl_._oneof_case_[0]);
}
// -------------------------------------------------------------------

// SeekResponse

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

// @@protoc_insertion_point(namespace_scope)
}  // namespace v1
}  // namespace pubsub
}  // namespace google


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State>() {
  return ::google::pubsub::v1::IngestionDataSourceSettings_AwsKinesis_State_descriptor();
}
template <>
struct is_proto_enum<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State>() {
  return ::google::pubsub::v1::IngestionDataSourceSettings_CloudStorage_State_descriptor();
}
template <>
struct is_proto_enum<::google::pubsub::v1::PlatformLogsSettings_Severity> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::PlatformLogsSettings_Severity>() {
  return ::google::pubsub::v1::PlatformLogsSettings_Severity_descriptor();
}
template <>
struct is_proto_enum<::google::pubsub::v1::Topic_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::Topic_State>() {
  return ::google::pubsub::v1::Topic_State_descriptor();
}
template <>
struct is_proto_enum<::google::pubsub::v1::Subscription_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::Subscription_State>() {
  return ::google::pubsub::v1::Subscription_State_descriptor();
}
template <>
struct is_proto_enum<::google::pubsub::v1::BigQueryConfig_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::BigQueryConfig_State>() {
  return ::google::pubsub::v1::BigQueryConfig_State_descriptor();
}
template <>
struct is_proto_enum<::google::pubsub::v1::CloudStorageConfig_State> : std::true_type {};
template <>
inline const EnumDescriptor* PROTOBUF_NONNULL GetEnumDescriptor<::google::pubsub::v1::CloudStorageConfig_State>() {
  return ::google::pubsub::v1::CloudStorageConfig_State_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"
// clang-format on

#endif  // google_2fpubsub_2fv1_2fpubsub_2eproto_2epb_2eh
