text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: yandex/cloud/operation/operation.proto
  
  #include "yandex/cloud/operation/operation.pb.h"
  
  #include <algorithm>
  
  #include <google/protobuf/stubs/common.h>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/extension_set.h>
  #include <google/protobuf/wire_format_lite.h>
  #include <google/protobuf/descriptor.h>
  #include <google/protobuf/generated_message_reflection.h>
  #include <google/protobuf/reflection_ops.h>
  #include <google/protobuf/wire_format.h>
  // @@protoc_insertion_point(includes)
  #include <google/protobuf/port_def.inc>
  extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fany_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Any_google_2fprotobuf_2fany_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2ftimestamp_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto;
  extern PROTOBUF_INTERNAL_EXPORT_google_2frpc_2fstatus_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Status_google_2frpc_2fstatus_2eproto;
  namespace yandex {
  namespace cloud {
  namespace operation {
  class OperationDefaultTypeInternal {
   public:
    ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Operation> _instance;
    const ::google::rpc::Status* error_;
    const PROTOBUF_NAMESPACE_ID::Any* response_;
  } _Operation_default_instance_;
  }  // namespace operation
  }  // namespace cloud
  }  // namespace yandex
  static void InitDefaultsscc_info_Operation_yandex_2fcloud_2foperation_2foperation_2eproto() {
    GOOGLE_PROTOBUF_VERIFY_VERSION;
  
    {
      void* ptr = &::yandex::cloud::operation::_Operation_default_instance_;
      new (ptr) ::yandex::cloud::operation::Operation();
      ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
    }
    ::yandex::cloud::operation::Operation::InitAsDefaultInstance();
  }
  
  ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<3> scc_info_Operation_yandex_2fcloud_2foperation_2foperation_2eproto =
      {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsscc_info_Operation_yandex_2fcloud_2foperation_2foperation_2eproto}, {
        &scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto.base,
        &scc_info_Any_google_2fprotobuf_2fany_2eproto.base,
        &scc_info_Status_google_2frpc_2fstatus_2eproto.base,}};
  
  static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_yandex_2fcloud_2foperation_2foperation_2eproto[1];
  static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_yandex_2fcloud_2foperation_2foperation_2eproto = nullptr;
  static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_yandex_2fcloud_2foperation_2foperation_2eproto = nullptr;
  
  const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_yandex_2fcloud_2foperation_2foperation_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
    ~0u,  // no _has_bits_
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, _internal_metadata_),
    ~0u,  // no _extensions_
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, _oneof_case_[0]),
    ~0u,  // no _weak_field_map_
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, id_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, description_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, created_at_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, created_by_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, modified_at_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, done_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, metadata_),
    offsetof(::yandex::cloud::operation::OperationDefaultTypeInternal, error_),
    offsetof(::yandex::cloud::operation::OperationDefaultTypeInternal, response_),
    PROTOBUF_FIELD_OFFSET(::yandex::cloud::operation::Operation, result_),
  };
  static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
    { 0, -1, sizeof(::yandex::cloud::operation::Operation)},
  };
  
  static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
    reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::yandex::cloud::operation::_Operation_default_instance_),
  };
  
  const char descriptor_table_protodef_yandex_2fcloud_2foperation_2foperation_2eproto[] =
    "\n&yandex/cloud/operation/operation.proto"
    "\022\026yandex.cloud.operation\032\031google/protobu"
    "f/any.proto\032\027google/rpc/status.proto\032\037go"
    "ogle/protobuf/timestamp.proto\"\260\002\n\tOperat"
    "ion\022\n\n\002id\030\001 \001(\t\022\023\n\013description\030\002 \001(\t\022.\n\n"
    "created_at\030\003 \001(\0132\032.google.protobuf.Times"
    "tamp\022\022\n\ncreated_by\030\004 \001(\t\022/\n\013modified_at\030"
    "\005 \001(\0132\032.google.protobuf.Timestamp\022\014\n\004don"
    "e\030\006 \001(\010\022&\n\010metadata\030\007 \001(\0132\024.google.proto"
    "buf.Any\022#\n\005error\030\010 \001(\0132\022.google.rpc.Stat"
    "usH\000\022(\n\010response\030\t \001(\0132\024.google.protobuf"
    ".AnyH\000B\010\n\006resultBb\n\032yandex.cloud.api.ope"
    "rationZDgithub.com/yandex-cloud/go-genpr"
    "oto/yandex/cloud/operation;operationb\006pr"
    "oto3"
    ;
  static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_deps[3] = {
    &::descriptor_table_google_2fprotobuf_2fany_2eproto,
    &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto,
    &::descriptor_table_google_2frpc_2fstatus_2eproto,
  };
  static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_sccs[1] = {
    &scc_info_Operation_yandex_2fcloud_2foperation_2foperation_2eproto.base,
  };
  static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_once;
  static bool descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_initialized = false;
  const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto = {
    &descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_initialized, descriptor_table_protodef_yandex_2fcloud_2foperation_2foperation_2eproto, "yandex/cloud/operation/operation.proto", 564,
    &descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_once, descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_sccs, descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto_deps, 1, 3,
    schemas, file_default_instances, TableStruct_yandex_2fcloud_2foperation_2foperation_2eproto::offsets,
    file_level_metadata_yandex_2fcloud_2foperation_2foperation_2eproto, 1, file_level_enum_descriptors_yandex_2fcloud_2foperation_2foperation_2eproto, file_level_service_descriptors_yandex_2fcloud_2foperation_2foperation_2eproto,
  };
  
  // Force running AddDescriptors() at dynamic initialization time.
  static bool dynamic_init_dummy_yandex_2fcloud_2foperation_2foperation_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_yandex_2fcloud_2foperation_2foperation_2eproto), true);
  namespace yandex {
  namespace cloud {
  namespace operation {
  
  // ===================================================================
  
  void Operation::InitAsDefaultInstance() {
    ::yandex::cloud::operation::_Operation_default_instance_._instance.get_mutable()->created_at_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
        PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
    ::yandex::cloud::operation::_Operation_default_instance_._instance.get_mutable()->modified_at_ = const_cast< PROTOBUF_NAMESPACE_ID::Timestamp*>(
        PROTOBUF_NAMESPACE_ID::Timestamp::internal_default_instance());
    ::yandex::cloud::operation::_Operation_default_instance_._instance.get_mutable()->metadata_ = const_cast< PROTOBUF_NAMESPACE_ID::Any*>(
        PROTOBUF_NAMESPACE_ID::Any::internal_default_instance());
    ::yandex::cloud::operation::_Operation_default_instance_.error_ = const_cast< ::google::rpc::Status*>(
        ::google::rpc::Status::internal_default_instance());
    ::yandex::cloud::operation::_Operation_default_instance_.response_ = const_cast< PROTOBUF_NAMESPACE_ID::Any*>(
        PROTOBUF_NAMESPACE_ID::Any::internal_default_instance());
  }
  class Operation::HasBitSetters {
   public:
    static const PROTOBUF_NAMESPACE_ID::Timestamp& created_at(const Operation* msg);
    static const PROTOBUF_NAMESPACE_ID::Timestamp& modified_at(const Operation* msg);
    static const PROTOBUF_NAMESPACE_ID::Any& metadata(const Operation* msg);
    static const ::google::rpc::Status& error(const Operation* msg);
    static const PROTOBUF_NAMESPACE_ID::Any& response(const Operation* msg);
  };
  
  const PROTOBUF_NAMESPACE_ID::Timestamp&
  Operation::HasBitSetters::created_at(const Operation* msg) {
    return *msg->created_at_;
  }
  const PROTOBUF_NAMESPACE_ID::Timestamp&
  Operation::HasBitSetters::modified_at(const Operation* msg) {
    return *msg->modified_at_;
  }
  const PROTOBUF_NAMESPACE_ID::Any&
  Operation::HasBitSetters::metadata(const Operation* msg) {
    return *msg->metadata_;
  }
  const ::google::rpc::Status&
  Operation::HasBitSetters::error(const Operation* msg) {
    return *msg->result_.error_;
  }
  const PROTOBUF_NAMESPACE_ID::Any&
  Operation::HasBitSetters::response(const Operation* msg) {
    return *msg->result_.response_;
  }
  void Operation::clear_created_at() {
    if (GetArenaNoVirtual() == nullptr && created_at_ != nullptr) {
      delete created_at_;
    }
    created_at_ = nullptr;
  }
  void Operation::clear_modified_at() {
    if (GetArenaNoVirtual() == nullptr && modified_at_ != nullptr) {
      delete modified_at_;
    }
    modified_at_ = nullptr;
  }
  void Operation::clear_metadata() {
    if (GetArenaNoVirtual() == nullptr && metadata_ != nullptr) {
      delete metadata_;
    }
    metadata_ = nullptr;
  }
  void Operation::set_allocated_error(::google::rpc::Status* error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
    clear_result();
    if (error) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
      if (message_arena != submessage_arena) {
        error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, error, submessage_arena);
      }
      set_has_error();
      result_.error_ = error;
    }
    // @@protoc_insertion_point(field_set_allocated:yandex.cloud.operation.Operation.error)
  }
  void Operation::clear_error() {
    if (has_error()) {
      delete result_.error_;
      clear_has_result();
    }
  }
  void Operation::set_allocated_response(PROTOBUF_NAMESPACE_ID::Any* response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaNoVirtual();
    clear_result();
    if (response) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = nullptr;
      if (message_arena != submessage_arena) {
        response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, response, submessage_arena);
      }
      set_has_response();
      result_.response_ = response;
    }
    // @@protoc_insertion_point(field_set_allocated:yandex.cloud.operation.Operation.response)
  }
  void Operation::clear_response() {
    if (has_response()) {
      delete result_.response_;
      clear_has_result();
    }
  }
  #if !defined(_MSC_VER) || _MSC_VER >= 1900
  const int Operation::kIdFieldNumber;
  const int Operation::kDescriptionFieldNumber;
  const int Operation::kCreatedAtFieldNumber;
  const int Operation::kCreatedByFieldNumber;
  const int Operation::kModifiedAtFieldNumber;
  const int Operation::kDoneFieldNumber;
  const int Operation::kMetadataFieldNumber;
  const int Operation::kErrorFieldNumber;
  const int Operation::kResponseFieldNumber;
  #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
  
  Operation::Operation()
    : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
    SharedCtor();
    // @@protoc_insertion_point(constructor:yandex.cloud.operation.Operation)
  }
  Operation::Operation(const Operation& from)
    : ::PROTOBUF_NAMESPACE_ID::Message(),
        _internal_metadata_(nullptr) {
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    if (from.id().size() > 0) {
      id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
    }
    description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    if (from.description().size() > 0) {
      description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    created_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    if (from.created_by().size() > 0) {
      created_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.created_by_);
    }
    if (from.has_created_at()) {
      created_at_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.created_at_);
    } else {
      created_at_ = nullptr;
    }
    if (from.has_modified_at()) {
      modified_at_ = new PROTOBUF_NAMESPACE_ID::Timestamp(*from.modified_at_);
    } else {
      modified_at_ = nullptr;
    }
    if (from.has_metadata()) {
      metadata_ = new PROTOBUF_NAMESPACE_ID::Any(*from.metadata_);
    } else {
      metadata_ = nullptr;
    }
    done_ = from.done_;
    clear_has_result();
    switch (from.result_case()) {
      case kError: {
        mutable_error()->::google::rpc::Status::MergeFrom(from.error());
        break;
      }
      case kResponse: {
        mutable_response()->PROTOBUF_NAMESPACE_ID::Any::MergeFrom(from.response());
        break;
      }
      case RESULT_NOT_SET: {
        break;
      }
    }
    // @@protoc_insertion_point(copy_constructor:yandex.cloud.operation.Operation)
  }
  
  void Operation::SharedCtor() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Operation_yandex_2fcloud_2foperation_2foperation_2eproto.base);
    id_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    description_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    created_by_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    ::memset(&created_at_, 0, static_cast<size_t>(
        reinterpret_cast<char*>(&done_) -
        reinterpret_cast<char*>(&created_at_)) + sizeof(done_));
    clear_has_result();
  }
  
  Operation::~Operation() {
    // @@protoc_insertion_point(destructor:yandex.cloud.operation.Operation)
    SharedDtor();
  }
  
  void Operation::SharedDtor() {
    id_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    description_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    created_by_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    if (this != internal_default_instance()) delete created_at_;
    if (this != internal_default_instance()) delete modified_at_;
    if (this != internal_default_instance()) delete metadata_;
    if (has_result()) {
      clear_result();
    }
  }
  
  void Operation::SetCachedSize(int size) const {
    _cached_size_.Set(size);
  }
  const Operation& Operation::default_instance() {
    ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Operation_yandex_2fcloud_2foperation_2foperation_2eproto.base);
    return *internal_default_instance();
  }
  
  
  void Operation::clear_result() {
  // @@protoc_insertion_point(one_of_clear_start:yandex.cloud.operation.Operation)
    switch (result_case()) {
      case kError: {
        delete result_.error_;
        break;
      }
      case kResponse: {
        delete result_.response_;
        break;
      }
      case RESULT_NOT_SET: {
        break;
      }
    }
    _oneof_case_[0] = RESULT_NOT_SET;
  }
  
  
  void Operation::Clear() {
  // @@protoc_insertion_point(message_clear_start:yandex.cloud.operation.Operation)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    id_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    description_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    created_by_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
    if (GetArenaNoVirtual() == nullptr && created_at_ != nullptr) {
      delete created_at_;
    }
    created_at_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && modified_at_ != nullptr) {
      delete modified_at_;
    }
    modified_at_ = nullptr;
    if (GetArenaNoVirtual() == nullptr && metadata_ != nullptr) {
      delete metadata_;
    }
    metadata_ = nullptr;
    done_ = false;
    clear_result();
    _internal_metadata_.Clear();
  }
  
  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  const char* Operation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
  #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
    while (!ctx->Done(&ptr)) {
      ::PROTOBUF_NAMESPACE_ID::uint32 tag;
      ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
      CHK_(ptr);
      switch (tag >> 3) {
        // string id = 1;
        case 1:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_id(), ptr, ctx, "yandex.cloud.operation.Operation.id");
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // string description = 2;
        case 2:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_description(), ptr, ctx, "yandex.cloud.operation.Operation.description");
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Timestamp created_at = 3;
        case 3:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
            ptr = ctx->ParseMessage(mutable_created_at(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // string created_by = 4;
        case 4:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
            ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(mutable_created_by(), ptr, ctx, "yandex.cloud.operation.Operation.created_by");
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Timestamp modified_at = 5;
        case 5:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
            ptr = ctx->ParseMessage(mutable_modified_at(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // bool done = 6;
        case 6:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48)) {
            done_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Any metadata = 7;
        case 7:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
            ptr = ctx->ParseMessage(mutable_metadata(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.rpc.Status error = 8;
        case 8:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
            ptr = ctx->ParseMessage(mutable_error(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        // .google.protobuf.Any response = 9;
        case 9:
          if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
            ptr = ctx->ParseMessage(mutable_response(), ptr);
            CHK_(ptr);
          } else goto handle_unusual;
          continue;
        default: {
        handle_unusual:
          if ((tag & 7) == 4 || tag == 0) {
            ctx->SetLastTag(tag);
            goto success;
          }
          ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
          CHK_(ptr != nullptr);
          continue;
        }
      }  // switch
    }  // while
  success:
    return ptr;
  failure:
    ptr = nullptr;
    goto success;
  #undef CHK_
  }
  #else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  bool Operation::MergePartialFromCodedStream(
      ::PROTOBUF_NAMESPACE_ID::io::CodedInputStream* input) {
  #define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    // @@protoc_insertion_point(parse_start:yandex.cloud.operation.Operation)
    for (;;) {
      ::std::pair<::PROTOBUF_NAMESPACE_ID::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
      tag = p.first;
      if (!p.second) goto handle_unusual;
      switch (::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::GetTagFieldNumber(tag)) {
        // string id = 1;
        case 1: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (10 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                  input, this->mutable_id()));
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
              this->id().data(), static_cast<int>(this->id().length()),
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
              "yandex.cloud.operation.Operation.id"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string description = 2;
        case 2: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (18 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                  input, this->mutable_description()));
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
              this->description().data(), static_cast<int>(this->description().length()),
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
              "yandex.cloud.operation.Operation.description"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .google.protobuf.Timestamp created_at = 3;
        case 3: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (26 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                 input, mutable_created_at()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // string created_by = 4;
        case 4: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (34 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadString(
                  input, this->mutable_created_by()));
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
              this->created_by().data(), static_cast<int>(this->created_by().length()),
              ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::PARSE,
              "yandex.cloud.operation.Operation.created_by"));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .google.protobuf.Timestamp modified_at = 5;
        case 5: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (42 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                 input, mutable_modified_at()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // bool done = 6;
        case 6: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (48 & 0xFF)) {
  
            DO_((::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadPrimitive<
                     bool, ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::TYPE_BOOL>(
                   input, &done_)));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .google.protobuf.Any metadata = 7;
        case 7: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (58 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                 input, mutable_metadata()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .google.rpc.Status error = 8;
        case 8: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (66 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                 input, mutable_error()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        // .google.protobuf.Any response = 9;
        case 9: {
          if (static_cast< ::PROTOBUF_NAMESPACE_ID::uint8>(tag) == (74 & 0xFF)) {
            DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::ReadMessage(
                 input, mutable_response()));
          } else {
            goto handle_unusual;
          }
          break;
        }
  
        default: {
        handle_unusual:
          if (tag == 0) {
            goto success;
          }
          DO_(::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SkipField(
                input, tag, _internal_metadata_.mutable_unknown_fields()));
          break;
        }
      }
    }
  success:
    // @@protoc_insertion_point(parse_success:yandex.cloud.operation.Operation)
    return true;
  failure:
    // @@protoc_insertion_point(parse_failure:yandex.cloud.operation.Operation)
    return false;
  #undef DO_
  }
  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
  
  void Operation::SerializeWithCachedSizes(
      ::PROTOBUF_NAMESPACE_ID::io::CodedOutputStream* output) const {
    // @@protoc_insertion_point(serialize_start:yandex.cloud.operation.Operation)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string id = 1;
    if (this->id().size() > 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        this->id().data(), static_cast<int>(this->id().length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "yandex.cloud.operation.Operation.id");
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
        1, this->id(), output);
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "yandex.cloud.operation.Operation.description");
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
        2, this->description(), output);
    }
  
    // .google.protobuf.Timestamp created_at = 3;
    if (this->has_created_at()) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
        3, HasBitSetters::created_at(this), output);
    }
  
    // string created_by = 4;
    if (this->created_by().size() > 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        this->created_by().data(), static_cast<int>(this->created_by().length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "yandex.cloud.operation.Operation.created_by");
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringMaybeAliased(
        4, this->created_by(), output);
    }
  
    // .google.protobuf.Timestamp modified_at = 5;
    if (this->has_modified_at()) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
        5, HasBitSetters::modified_at(this), output);
    }
  
    // bool done = 6;
    if (this->done() != 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBool(6, this->done(), output);
    }
  
    // .google.protobuf.Any metadata = 7;
    if (this->has_metadata()) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
        7, HasBitSetters::metadata(this), output);
    }
  
    // .google.rpc.Status error = 8;
    if (has_error()) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
        8, HasBitSetters::error(this), output);
    }
  
    // .google.protobuf.Any response = 9;
    if (has_response()) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteMessageMaybeToArray(
        9, HasBitSetters::response(this), output);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFields(
          _internal_metadata_.unknown_fields(), output);
    }
    // @@protoc_insertion_point(serialize_end:yandex.cloud.operation.Operation)
  }
  
  ::PROTOBUF_NAMESPACE_ID::uint8* Operation::InternalSerializeWithCachedSizesToArray(
      ::PROTOBUF_NAMESPACE_ID::uint8* target) const {
    // @@protoc_insertion_point(serialize_to_array_start:yandex.cloud.operation.Operation)
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    // string id = 1;
    if (this->id().size() > 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        this->id().data(), static_cast<int>(this->id().length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "yandex.cloud.operation.Operation.id");
      target =
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
          1, this->id(), target);
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        this->description().data(), static_cast<int>(this->description().length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "yandex.cloud.operation.Operation.description");
      target =
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
          2, this->description(), target);
    }
  
    // .google.protobuf.Timestamp created_at = 3;
    if (this->has_created_at()) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessageToArray(
          3, HasBitSetters::created_at(this), target);
    }
  
    // string created_by = 4;
    if (this->created_by().size() > 0) {
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
        this->created_by().data(), static_cast<int>(this->created_by().length()),
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
        "yandex.cloud.operation.Operation.created_by");
      target =
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteStringToArray(
          4, this->created_by(), target);
    }
  
    // .google.protobuf.Timestamp modified_at = 5;
    if (this->has_modified_at()) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessageToArray(
          5, HasBitSetters::modified_at(this), target);
    }
  
    // bool done = 6;
    if (this->done() != 0) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(6, this->done(), target);
    }
  
    // .google.protobuf.Any metadata = 7;
    if (this->has_metadata()) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessageToArray(
          7, HasBitSetters::metadata(this), target);
    }
  
    // .google.rpc.Status error = 8;
    if (has_error()) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessageToArray(
          8, HasBitSetters::error(this), target);
    }
  
    // .google.protobuf.Any response = 9;
    if (has_response()) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessageToArray(
          9, HasBitSetters::response(this), target);
    }
  
    if (_internal_metadata_.have_unknown_fields()) {
      target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::SerializeUnknownFieldsToArray(
          _internal_metadata_.unknown_fields(), target);
    }
    // @@protoc_insertion_point(serialize_to_array_end:yandex.cloud.operation.Operation)
    return target;
  }
  
  size_t Operation::ByteSizeLong() const {
  // @@protoc_insertion_point(message_byte_size_start:yandex.cloud.operation.Operation)
    size_t total_size = 0;
  
    if (_internal_metadata_.have_unknown_fields()) {
      total_size +=
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::ComputeUnknownFieldsSize(
          _internal_metadata_.unknown_fields());
    }
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    // Prevent compiler warnings about cached_has_bits being unused
    (void) cached_has_bits;
  
    // string id = 1;
    if (this->id().size() > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->id());
    }
  
    // string description = 2;
    if (this->description().size() > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->description());
    }
  
    // string created_by = 4;
    if (this->created_by().size() > 0) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->created_by());
    }
  
    // .google.protobuf.Timestamp created_at = 3;
    if (this->has_created_at()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *created_at_);
    }
  
    // .google.protobuf.Timestamp modified_at = 5;
    if (this->has_modified_at()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *modified_at_);
    }
  
    // .google.protobuf.Any metadata = 7;
    if (this->has_metadata()) {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *metadata_);
    }
  
    // bool done = 6;
    if (this->done() != 0) {
      total_size += 1 + 1;
    }
  
    switch (result_case()) {
      // .google.rpc.Status error = 8;
      case kError: {
        total_size += 1 +
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
            *result_.error_);
        break;
      }
      // .google.protobuf.Any response = 9;
      case kResponse: {
        total_size += 1 +
          ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
            *result_.response_);
        break;
      }
      case RESULT_NOT_SET: {
        break;
      }
    }
    int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
    SetCachedSize(cached_size);
    return total_size;
  }
  
  void Operation::MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_merge_from_start:yandex.cloud.operation.Operation)
    GOOGLE_DCHECK_NE(&from, this);
    const Operation* source =
        ::PROTOBUF_NAMESPACE_ID::DynamicCastToGenerated<Operation>(
            &from);
    if (source == nullptr) {
    // @@protoc_insertion_point(generalized_merge_from_cast_fail:yandex.cloud.operation.Operation)
      ::PROTOBUF_NAMESPACE_ID::internal::ReflectionOps::Merge(from, this);
    } else {
    // @@protoc_insertion_point(generalized_merge_from_cast_success:yandex.cloud.operation.Operation)
      MergeFrom(*source);
    }
  }
  
  void Operation::MergeFrom(const Operation& from) {
  // @@protoc_insertion_point(class_specific_merge_from_start:yandex.cloud.operation.Operation)
    GOOGLE_DCHECK_NE(&from, this);
    _internal_metadata_.MergeFrom(from._internal_metadata_);
    ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
    (void) cached_has_bits;
  
    if (from.id().size() > 0) {
  
      id_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.id_);
    }
    if (from.description().size() > 0) {
  
      description_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.description_);
    }
    if (from.created_by().size() > 0) {
  
      created_by_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.created_by_);
    }
    if (from.has_created_at()) {
      mutable_created_at()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from.created_at());
    }
    if (from.has_modified_at()) {
      mutable_modified_at()->PROTOBUF_NAMESPACE_ID::Timestamp::MergeFrom(from.modified_at());
    }
    if (from.has_metadata()) {
      mutable_metadata()->PROTOBUF_NAMESPACE_ID::Any::MergeFrom(from.metadata());
    }
    if (from.done() != 0) {
      set_done(from.done());
    }
    switch (from.result_case()) {
      case kError: {
        mutable_error()->::google::rpc::Status::MergeFrom(from.error());
        break;
      }
      case kResponse: {
        mutable_response()->PROTOBUF_NAMESPACE_ID::Any::MergeFrom(from.response());
        break;
      }
      case RESULT_NOT_SET: {
        break;
      }
    }
  }
  
  void Operation::CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  // @@protoc_insertion_point(generalized_copy_from_start:yandex.cloud.operation.Operation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  void Operation::CopyFrom(const Operation& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:yandex.cloud.operation.Operation)
    if (&from == this) return;
    Clear();
    MergeFrom(from);
  }
  
  bool Operation::IsInitialized() const {
    return true;
  }
  
  void Operation::Swap(Operation* other) {
    if (other == this) return;
    InternalSwap(other);
  }
  void Operation::InternalSwap(Operation* other) {
    using std::swap;
    _internal_metadata_.Swap(&other->_internal_metadata_);
    id_.Swap(&other->id_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    description_.Swap(&other->description_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    created_by_.Swap(&other->created_by_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
    swap(created_at_, other->created_at_);
    swap(modified_at_, other->modified_at_);
    swap(metadata_, other->metadata_);
    swap(done_, other->done_);
    swap(result_, other->result_);
    swap(_oneof_case_[0], other->_oneof_case_[0]);
  }
  
  ::PROTOBUF_NAMESPACE_ID::Metadata Operation::GetMetadata() const {
    return GetMetadataStatic();
  }
  
  
  // @@protoc_insertion_point(namespace_scope)
  }  // namespace operation
  }  // namespace cloud
  }  // namespace yandex
  PROTOBUF_NAMESPACE_OPEN
  template<> PROTOBUF_NOINLINE ::yandex::cloud::operation::Operation* Arena::CreateMaybeMessage< ::yandex::cloud::operation::Operation >(Arena* arena) {
    return Arena::CreateInternal< ::yandex::cloud::operation::Operation >(arena);
  }
  PROTOBUF_NAMESPACE_CLOSE
  
  // @@protoc_insertion_point(global_scope)
  #include <google/protobuf/port_undef.inc>
  