text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: ftp/ftp.proto
  
  #ifndef GOOGLE_PROTOBUF_INCLUDED_ftp_2fftp_2eproto
  #define GOOGLE_PROTOBUF_INCLUDED_ftp_2fftp_2eproto
  
  #include <limits>
  #include <string>
  
  #include <google/protobuf/port_def.inc>
  #if PROTOBUF_VERSION < 3017000
  #error This file was generated by a newer version of protoc which is
  #error incompatible with your Protocol Buffer headers. Please update
  #error your headers.
  #endif
  #if 3017003 < PROTOBUF_MIN_PROTOC_VERSION
  #error This file was generated by an older version of protoc which is
  #error incompatible with your Protocol Buffer headers. Please
  #error regenerate this file with a newer version of protoc.
  #endif
  
  #include <google/protobuf/port_undef.inc>
  #include <google/protobuf/io/coded_stream.h>
  #include <google/protobuf/arena.h>
  #include <google/protobuf/arenastring.h>
  #include <google/protobuf/generated_message_table_driven.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/repeated_field.h>  // IWYU pragma: export
  #include <google/protobuf/extension_set.h>  // IWYU pragma: export
  #include <google/protobuf/generated_enum_reflection.h>
  #include <google/protobuf/unknown_field_set.h>
  #include "mavsdk_options.pb.h"
  // @@protoc_insertion_point(includes)
  #include <google/protobuf/port_def.inc>
  #define PROTOBUF_INTERNAL_EXPORT_ftp_2fftp_2eproto
  PROTOBUF_NAMESPACE_OPEN
  namespace internal {
  class AnyMetadata;
  }  // namespace internal
  PROTOBUF_NAMESPACE_CLOSE
  
  // Internal implementation detail -- do not use these members.
  struct TableStruct_ftp_2fftp_2eproto {
    static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
      PROTOBUF_SECTION_VARIABLE(protodesc_cold);
    static const ::PROTOBUF_NAMESPACE_ID::internal::AuxiliaryParseTableField aux[]
      PROTOBUF_SECTION_VARIABLE(protodesc_cold);
    static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[26]
      PROTOBUF_SECTION_VARIABLE(protodesc_cold);
    static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
    static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
    static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
  };
  extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ftp_2fftp_2eproto;
  namespace mavsdk {
  namespace rpc {
  namespace ftp {
  class AreFilesIdenticalRequest;
  struct AreFilesIdenticalRequestDefaultTypeInternal;
  extern AreFilesIdenticalRequestDefaultTypeInternal _AreFilesIdenticalRequest_default_instance_;
  class AreFilesIdenticalResponse;
  struct AreFilesIdenticalResponseDefaultTypeInternal;
  extern AreFilesIdenticalResponseDefaultTypeInternal _AreFilesIdenticalResponse_default_instance_;
  class CreateDirectoryRequest;
  struct CreateDirectoryRequestDefaultTypeInternal;
  extern CreateDirectoryRequestDefaultTypeInternal _CreateDirectoryRequest_default_instance_;
  class CreateDirectoryResponse;
  struct CreateDirectoryResponseDefaultTypeInternal;
  extern CreateDirectoryResponseDefaultTypeInternal _CreateDirectoryResponse_default_instance_;
  class DownloadResponse;
  struct DownloadResponseDefaultTypeInternal;
  extern DownloadResponseDefaultTypeInternal _DownloadResponse_default_instance_;
  class FtpResult;
  struct FtpResultDefaultTypeInternal;
  extern FtpResultDefaultTypeInternal _FtpResult_default_instance_;
  class GetOurCompidRequest;
  struct GetOurCompidRequestDefaultTypeInternal;
  extern GetOurCompidRequestDefaultTypeInternal _GetOurCompidRequest_default_instance_;
  class GetOurCompidResponse;
  struct GetOurCompidResponseDefaultTypeInternal;
  extern GetOurCompidResponseDefaultTypeInternal _GetOurCompidResponse_default_instance_;
  class ListDirectoryRequest;
  struct ListDirectoryRequestDefaultTypeInternal;
  extern ListDirectoryRequestDefaultTypeInternal _ListDirectoryRequest_default_instance_;
  class ListDirectoryResponse;
  struct ListDirectoryResponseDefaultTypeInternal;
  extern ListDirectoryResponseDefaultTypeInternal _ListDirectoryResponse_default_instance_;
  class ProgressData;
  struct ProgressDataDefaultTypeInternal;
  extern ProgressDataDefaultTypeInternal _ProgressData_default_instance_;
  class RemoveDirectoryRequest;
  struct RemoveDirectoryRequestDefaultTypeInternal;
  extern RemoveDirectoryRequestDefaultTypeInternal _RemoveDirectoryRequest_default_instance_;
  class RemoveDirectoryResponse;
  struct RemoveDirectoryResponseDefaultTypeInternal;
  extern RemoveDirectoryResponseDefaultTypeInternal _RemoveDirectoryResponse_default_instance_;
  class RemoveFileRequest;
  struct RemoveFileRequestDefaultTypeInternal;
  extern RemoveFileRequestDefaultTypeInternal _RemoveFileRequest_default_instance_;
  class RemoveFileResponse;
  struct RemoveFileResponseDefaultTypeInternal;
  extern RemoveFileResponseDefaultTypeInternal _RemoveFileResponse_default_instance_;
  class RenameRequest;
  struct RenameRequestDefaultTypeInternal;
  extern RenameRequestDefaultTypeInternal _RenameRequest_default_instance_;
  class RenameResponse;
  struct RenameResponseDefaultTypeInternal;
  extern RenameResponseDefaultTypeInternal _RenameResponse_default_instance_;
  class ResetRequest;
  struct ResetRequestDefaultTypeInternal;
  extern ResetRequestDefaultTypeInternal _ResetRequest_default_instance_;
  class ResetResponse;
  struct ResetResponseDefaultTypeInternal;
  extern ResetResponseDefaultTypeInternal _ResetResponse_default_instance_;
  class SetRootDirectoryRequest;
  struct SetRootDirectoryRequestDefaultTypeInternal;
  extern SetRootDirectoryRequestDefaultTypeInternal _SetRootDirectoryRequest_default_instance_;
  class SetRootDirectoryResponse;
  struct SetRootDirectoryResponseDefaultTypeInternal;
  extern SetRootDirectoryResponseDefaultTypeInternal _SetRootDirectoryResponse_default_instance_;
  class SetTargetCompidRequest;
  struct SetTargetCompidRequestDefaultTypeInternal;
  extern SetTargetCompidRequestDefaultTypeInternal _SetTargetCompidRequest_default_instance_;
  class SetTargetCompidResponse;
  struct SetTargetCompidResponseDefaultTypeInternal;
  extern SetTargetCompidResponseDefaultTypeInternal _SetTargetCompidResponse_default_instance_;
  class SubscribeDownloadRequest;
  struct SubscribeDownloadRequestDefaultTypeInternal;
  extern SubscribeDownloadRequestDefaultTypeInternal _SubscribeDownloadRequest_default_instance_;
  class SubscribeUploadRequest;
  struct SubscribeUploadRequestDefaultTypeInternal;
  extern SubscribeUploadRequestDefaultTypeInternal _SubscribeUploadRequest_default_instance_;
  class UploadResponse;
  struct UploadResponseDefaultTypeInternal;
  extern UploadResponseDefaultTypeInternal _UploadResponse_default_instance_;
  }  // namespace ftp
  }  // namespace rpc
  }  // namespace mavsdk
  PROTOBUF_NAMESPACE_OPEN
  template<> ::mavsdk::rpc::ftp::AreFilesIdenticalRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::AreFilesIdenticalRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::AreFilesIdenticalResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::AreFilesIdenticalResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::CreateDirectoryRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::CreateDirectoryRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::CreateDirectoryResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::CreateDirectoryResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::DownloadResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::DownloadResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::FtpResult* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(Arena*);
  template<> ::mavsdk::rpc::ftp::GetOurCompidRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::GetOurCompidRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::GetOurCompidResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::GetOurCompidResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::ListDirectoryRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::ListDirectoryRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::ListDirectoryResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::ListDirectoryResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::ProgressData* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::ProgressData>(Arena*);
  template<> ::mavsdk::rpc::ftp::RemoveDirectoryRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::RemoveDirectoryRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::RemoveDirectoryResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::RemoveDirectoryResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::RemoveFileRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::RemoveFileRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::RemoveFileResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::RemoveFileResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::RenameRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::RenameRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::RenameResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::RenameResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::ResetRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::ResetRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::ResetResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::ResetResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::SetRootDirectoryRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::SetRootDirectoryRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::SetRootDirectoryResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::SetRootDirectoryResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::SetTargetCompidRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::SetTargetCompidRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::SetTargetCompidResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::SetTargetCompidResponse>(Arena*);
  template<> ::mavsdk::rpc::ftp::SubscribeDownloadRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::SubscribeDownloadRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::SubscribeUploadRequest* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::SubscribeUploadRequest>(Arena*);
  template<> ::mavsdk::rpc::ftp::UploadResponse* Arena::CreateMaybeMessage<::mavsdk::rpc::ftp::UploadResponse>(Arena*);
  PROTOBUF_NAMESPACE_CLOSE
  namespace mavsdk {
  namespace rpc {
  namespace ftp {
  
  enum FtpResult_Result : int {
    FtpResult_Result_RESULT_UNKNOWN = 0,
    FtpResult_Result_RESULT_SUCCESS = 1,
    FtpResult_Result_RESULT_NEXT = 2,
    FtpResult_Result_RESULT_TIMEOUT = 3,
    FtpResult_Result_RESULT_BUSY = 4,
    FtpResult_Result_RESULT_FILE_IO_ERROR = 5,
    FtpResult_Result_RESULT_FILE_EXISTS = 6,
    FtpResult_Result_RESULT_FILE_DOES_NOT_EXIST = 7,
    FtpResult_Result_RESULT_FILE_PROTECTED = 8,
    FtpResult_Result_RESULT_INVALID_PARAMETER = 9,
    FtpResult_Result_RESULT_UNSUPPORTED = 10,
    FtpResult_Result_RESULT_PROTOCOL_ERROR = 11,
    FtpResult_Result_RESULT_NO_SYSTEM = 12,
    FtpResult_Result_FtpResult_Result_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::min(),
    FtpResult_Result_FtpResult_Result_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::PROTOBUF_NAMESPACE_ID::int32>::max()
  };
  bool FtpResult_Result_IsValid(int value);
  constexpr FtpResult_Result FtpResult_Result_Result_MIN = FtpResult_Result_RESULT_UNKNOWN;
  constexpr FtpResult_Result FtpResult_Result_Result_MAX = FtpResult_Result_RESULT_NO_SYSTEM;
  constexpr int FtpResult_Result_Result_ARRAYSIZE = FtpResult_Result_Result_MAX + 1;
  
  const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* FtpResult_Result_descriptor();
  template<typename T>
  inline const std::string& FtpResult_Result_Name(T enum_t_value) {
    static_assert(::std::is_same<T, FtpResult_Result>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function FtpResult_Result_Name.");
    return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
      FtpResult_Result_descriptor(), enum_t_value);
  }
  inline bool FtpResult_Result_Parse(
      ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, FtpResult_Result* value) {
    return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<FtpResult_Result>(
      FtpResult_Result_descriptor(), name, value);
  }
  // ===================================================================
  
  class ResetRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.ResetRequest) */ {
   public:
    inline ResetRequest() : ResetRequest(nullptr) {}
    ~ResetRequest() override;
    explicit constexpr ResetRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    ResetRequest(const ResetRequest& from);
    ResetRequest(ResetRequest&& from) noexcept
      : ResetRequest() {
      *this = ::std::move(from);
    }
  
    inline ResetRequest& operator=(const ResetRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline ResetRequest& operator=(ResetRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const ResetRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const ResetRequest* internal_default_instance() {
      return reinterpret_cast<const ResetRequest*>(
                 &_ResetRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      0;
  
    friend void swap(ResetRequest& a, ResetRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(ResetRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(ResetRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline ResetRequest* New() const final {
      return new ResetRequest();
    }
  
    ResetRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<ResetRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const ResetRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const ResetRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(ResetRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.ResetRequest";
    }
    protected:
    explicit ResetRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.ResetRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class ResetResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.ResetResponse) */ {
   public:
    inline ResetResponse() : ResetResponse(nullptr) {}
    ~ResetResponse() override;
    explicit constexpr ResetResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    ResetResponse(const ResetResponse& from);
    ResetResponse(ResetResponse&& from) noexcept
      : ResetResponse() {
      *this = ::std::move(from);
    }
  
    inline ResetResponse& operator=(const ResetResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline ResetResponse& operator=(ResetResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const ResetResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const ResetResponse* internal_default_instance() {
      return reinterpret_cast<const ResetResponse*>(
                 &_ResetResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      1;
  
    friend void swap(ResetResponse& a, ResetResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(ResetResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(ResetResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline ResetResponse* New() const final {
      return new ResetResponse();
    }
  
    ResetResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<ResetResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const ResetResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const ResetResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(ResetResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.ResetResponse";
    }
    protected:
    explicit ResetResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.ResetResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class SubscribeDownloadRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.SubscribeDownloadRequest) */ {
   public:
    inline SubscribeDownloadRequest() : SubscribeDownloadRequest(nullptr) {}
    ~SubscribeDownloadRequest() override;
    explicit constexpr SubscribeDownloadRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    SubscribeDownloadRequest(const SubscribeDownloadRequest& from);
    SubscribeDownloadRequest(SubscribeDownloadRequest&& from) noexcept
      : SubscribeDownloadRequest() {
      *this = ::std::move(from);
    }
  
    inline SubscribeDownloadRequest& operator=(const SubscribeDownloadRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline SubscribeDownloadRequest& operator=(SubscribeDownloadRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const SubscribeDownloadRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const SubscribeDownloadRequest* internal_default_instance() {
      return reinterpret_cast<const SubscribeDownloadRequest*>(
                 &_SubscribeDownloadRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      2;
  
    friend void swap(SubscribeDownloadRequest& a, SubscribeDownloadRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(SubscribeDownloadRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(SubscribeDownloadRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline SubscribeDownloadRequest* New() const final {
      return new SubscribeDownloadRequest();
    }
  
    SubscribeDownloadRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<SubscribeDownloadRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const SubscribeDownloadRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const SubscribeDownloadRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(SubscribeDownloadRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.SubscribeDownloadRequest";
    }
    protected:
    explicit SubscribeDownloadRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRemoteFilePathFieldNumber = 1,
      kLocalDirFieldNumber = 2,
    };
    // string remote_file_path = 1;
    void clear_remote_file_path();
    const std::string& remote_file_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_file_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_file_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_file_path();
    void set_allocated_remote_file_path(std::string* remote_file_path);
    private:
    const std::string& _internal_remote_file_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_file_path(const std::string& value);
    std::string* _internal_mutable_remote_file_path();
    public:
  
    // string local_dir = 2;
    void clear_local_dir();
    const std::string& local_dir() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_local_dir(ArgT0&& arg0, ArgT... args);
    std::string* mutable_local_dir();
    PROTOBUF_MUST_USE_RESULT std::string* release_local_dir();
    void set_allocated_local_dir(std::string* local_dir);
    private:
    const std::string& _internal_local_dir() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_local_dir(const std::string& value);
    std::string* _internal_mutable_local_dir();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.SubscribeDownloadRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_file_path_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr local_dir_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class DownloadResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.DownloadResponse) */ {
   public:
    inline DownloadResponse() : DownloadResponse(nullptr) {}
    ~DownloadResponse() override;
    explicit constexpr DownloadResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    DownloadResponse(const DownloadResponse& from);
    DownloadResponse(DownloadResponse&& from) noexcept
      : DownloadResponse() {
      *this = ::std::move(from);
    }
  
    inline DownloadResponse& operator=(const DownloadResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline DownloadResponse& operator=(DownloadResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const DownloadResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const DownloadResponse* internal_default_instance() {
      return reinterpret_cast<const DownloadResponse*>(
                 &_DownloadResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      3;
  
    friend void swap(DownloadResponse& a, DownloadResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(DownloadResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(DownloadResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline DownloadResponse* New() const final {
      return new DownloadResponse();
    }
  
    DownloadResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<DownloadResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const DownloadResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const DownloadResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(DownloadResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.DownloadResponse";
    }
    protected:
    explicit DownloadResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
      kProgressDataFieldNumber = 2,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // .mavsdk.rpc.ftp.ProgressData progress_data = 2;
    bool has_progress_data() const;
    private:
    bool _internal_has_progress_data() const;
    public:
    void clear_progress_data();
    const ::mavsdk::rpc::ftp::ProgressData& progress_data() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::ProgressData* release_progress_data();
    ::mavsdk::rpc::ftp::ProgressData* mutable_progress_data();
    void set_allocated_progress_data(::mavsdk::rpc::ftp::ProgressData* progress_data);
    private:
    const ::mavsdk::rpc::ftp::ProgressData& _internal_progress_data() const;
    ::mavsdk::rpc::ftp::ProgressData* _internal_mutable_progress_data();
    public:
    void unsafe_arena_set_allocated_progress_data(
        ::mavsdk::rpc::ftp::ProgressData* progress_data);
    ::mavsdk::rpc::ftp::ProgressData* unsafe_arena_release_progress_data();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.DownloadResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    ::mavsdk::rpc::ftp::ProgressData* progress_data_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class SubscribeUploadRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.SubscribeUploadRequest) */ {
   public:
    inline SubscribeUploadRequest() : SubscribeUploadRequest(nullptr) {}
    ~SubscribeUploadRequest() override;
    explicit constexpr SubscribeUploadRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    SubscribeUploadRequest(const SubscribeUploadRequest& from);
    SubscribeUploadRequest(SubscribeUploadRequest&& from) noexcept
      : SubscribeUploadRequest() {
      *this = ::std::move(from);
    }
  
    inline SubscribeUploadRequest& operator=(const SubscribeUploadRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline SubscribeUploadRequest& operator=(SubscribeUploadRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const SubscribeUploadRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const SubscribeUploadRequest* internal_default_instance() {
      return reinterpret_cast<const SubscribeUploadRequest*>(
                 &_SubscribeUploadRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      4;
  
    friend void swap(SubscribeUploadRequest& a, SubscribeUploadRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(SubscribeUploadRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(SubscribeUploadRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline SubscribeUploadRequest* New() const final {
      return new SubscribeUploadRequest();
    }
  
    SubscribeUploadRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<SubscribeUploadRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const SubscribeUploadRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const SubscribeUploadRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(SubscribeUploadRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.SubscribeUploadRequest";
    }
    protected:
    explicit SubscribeUploadRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kLocalFilePathFieldNumber = 1,
      kRemoteDirFieldNumber = 2,
    };
    // string local_file_path = 1;
    void clear_local_file_path();
    const std::string& local_file_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_local_file_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_local_file_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_local_file_path();
    void set_allocated_local_file_path(std::string* local_file_path);
    private:
    const std::string& _internal_local_file_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_local_file_path(const std::string& value);
    std::string* _internal_mutable_local_file_path();
    public:
  
    // string remote_dir = 2;
    void clear_remote_dir();
    const std::string& remote_dir() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_dir(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_dir();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_dir();
    void set_allocated_remote_dir(std::string* remote_dir);
    private:
    const std::string& _internal_remote_dir() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_dir(const std::string& value);
    std::string* _internal_mutable_remote_dir();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.SubscribeUploadRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr local_file_path_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_dir_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class UploadResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.UploadResponse) */ {
   public:
    inline UploadResponse() : UploadResponse(nullptr) {}
    ~UploadResponse() override;
    explicit constexpr UploadResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    UploadResponse(const UploadResponse& from);
    UploadResponse(UploadResponse&& from) noexcept
      : UploadResponse() {
      *this = ::std::move(from);
    }
  
    inline UploadResponse& operator=(const UploadResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline UploadResponse& operator=(UploadResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const UploadResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const UploadResponse* internal_default_instance() {
      return reinterpret_cast<const UploadResponse*>(
                 &_UploadResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      5;
  
    friend void swap(UploadResponse& a, UploadResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(UploadResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(UploadResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline UploadResponse* New() const final {
      return new UploadResponse();
    }
  
    UploadResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<UploadResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const UploadResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const UploadResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(UploadResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.UploadResponse";
    }
    protected:
    explicit UploadResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
      kProgressDataFieldNumber = 2,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // .mavsdk.rpc.ftp.ProgressData progress_data = 2;
    bool has_progress_data() const;
    private:
    bool _internal_has_progress_data() const;
    public:
    void clear_progress_data();
    const ::mavsdk::rpc::ftp::ProgressData& progress_data() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::ProgressData* release_progress_data();
    ::mavsdk::rpc::ftp::ProgressData* mutable_progress_data();
    void set_allocated_progress_data(::mavsdk::rpc::ftp::ProgressData* progress_data);
    private:
    const ::mavsdk::rpc::ftp::ProgressData& _internal_progress_data() const;
    ::mavsdk::rpc::ftp::ProgressData* _internal_mutable_progress_data();
    public:
    void unsafe_arena_set_allocated_progress_data(
        ::mavsdk::rpc::ftp::ProgressData* progress_data);
    ::mavsdk::rpc::ftp::ProgressData* unsafe_arena_release_progress_data();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.UploadResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    ::mavsdk::rpc::ftp::ProgressData* progress_data_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class ListDirectoryRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.ListDirectoryRequest) */ {
   public:
    inline ListDirectoryRequest() : ListDirectoryRequest(nullptr) {}
    ~ListDirectoryRequest() override;
    explicit constexpr ListDirectoryRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    ListDirectoryRequest(const ListDirectoryRequest& from);
    ListDirectoryRequest(ListDirectoryRequest&& from) noexcept
      : ListDirectoryRequest() {
      *this = ::std::move(from);
    }
  
    inline ListDirectoryRequest& operator=(const ListDirectoryRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline ListDirectoryRequest& operator=(ListDirectoryRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const ListDirectoryRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const ListDirectoryRequest* internal_default_instance() {
      return reinterpret_cast<const ListDirectoryRequest*>(
                 &_ListDirectoryRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      6;
  
    friend void swap(ListDirectoryRequest& a, ListDirectoryRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(ListDirectoryRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(ListDirectoryRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline ListDirectoryRequest* New() const final {
      return new ListDirectoryRequest();
    }
  
    ListDirectoryRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<ListDirectoryRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const ListDirectoryRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const ListDirectoryRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(ListDirectoryRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.ListDirectoryRequest";
    }
    protected:
    explicit ListDirectoryRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRemoteDirFieldNumber = 1,
    };
    // string remote_dir = 1;
    void clear_remote_dir();
    const std::string& remote_dir() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_dir(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_dir();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_dir();
    void set_allocated_remote_dir(std::string* remote_dir);
    private:
    const std::string& _internal_remote_dir() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_dir(const std::string& value);
    std::string* _internal_mutable_remote_dir();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.ListDirectoryRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_dir_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class ListDirectoryResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.ListDirectoryResponse) */ {
   public:
    inline ListDirectoryResponse() : ListDirectoryResponse(nullptr) {}
    ~ListDirectoryResponse() override;
    explicit constexpr ListDirectoryResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    ListDirectoryResponse(const ListDirectoryResponse& from);
    ListDirectoryResponse(ListDirectoryResponse&& from) noexcept
      : ListDirectoryResponse() {
      *this = ::std::move(from);
    }
  
    inline ListDirectoryResponse& operator=(const ListDirectoryResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline ListDirectoryResponse& operator=(ListDirectoryResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const ListDirectoryResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const ListDirectoryResponse* internal_default_instance() {
      return reinterpret_cast<const ListDirectoryResponse*>(
                 &_ListDirectoryResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      7;
  
    friend void swap(ListDirectoryResponse& a, ListDirectoryResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(ListDirectoryResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(ListDirectoryResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline ListDirectoryResponse* New() const final {
      return new ListDirectoryResponse();
    }
  
    ListDirectoryResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<ListDirectoryResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const ListDirectoryResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const ListDirectoryResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(ListDirectoryResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.ListDirectoryResponse";
    }
    protected:
    explicit ListDirectoryResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kPathsFieldNumber = 2,
      kFtpResultFieldNumber = 1,
    };
    // repeated string paths = 2;
    int paths_size() const;
    private:
    int _internal_paths_size() const;
    public:
    void clear_paths();
    const std::string& paths(int index) const;
    std::string* mutable_paths(int index);
    void set_paths(int index, const std::string& value);
    void set_paths(int index, std::string&& value);
    void set_paths(int index, const char* value);
    void set_paths(int index, const char* value, size_t size);
    std::string* add_paths();
    void add_paths(const std::string& value);
    void add_paths(std::string&& value);
    void add_paths(const char* value);
    void add_paths(const char* value, size_t size);
    const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>& paths() const;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>* mutable_paths();
    private:
    const std::string& _internal_paths(int index) const;
    std::string* _internal_add_paths();
    public:
  
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.ListDirectoryResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string> paths_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class CreateDirectoryRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.CreateDirectoryRequest) */ {
   public:
    inline CreateDirectoryRequest() : CreateDirectoryRequest(nullptr) {}
    ~CreateDirectoryRequest() override;
    explicit constexpr CreateDirectoryRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    CreateDirectoryRequest(const CreateDirectoryRequest& from);
    CreateDirectoryRequest(CreateDirectoryRequest&& from) noexcept
      : CreateDirectoryRequest() {
      *this = ::std::move(from);
    }
  
    inline CreateDirectoryRequest& operator=(const CreateDirectoryRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline CreateDirectoryRequest& operator=(CreateDirectoryRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const CreateDirectoryRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const CreateDirectoryRequest* internal_default_instance() {
      return reinterpret_cast<const CreateDirectoryRequest*>(
                 &_CreateDirectoryRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      8;
  
    friend void swap(CreateDirectoryRequest& a, CreateDirectoryRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(CreateDirectoryRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(CreateDirectoryRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline CreateDirectoryRequest* New() const final {
      return new CreateDirectoryRequest();
    }
  
    CreateDirectoryRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<CreateDirectoryRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const CreateDirectoryRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const CreateDirectoryRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(CreateDirectoryRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.CreateDirectoryRequest";
    }
    protected:
    explicit CreateDirectoryRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRemoteDirFieldNumber = 1,
    };
    // string remote_dir = 1;
    void clear_remote_dir();
    const std::string& remote_dir() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_dir(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_dir();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_dir();
    void set_allocated_remote_dir(std::string* remote_dir);
    private:
    const std::string& _internal_remote_dir() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_dir(const std::string& value);
    std::string* _internal_mutable_remote_dir();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.CreateDirectoryRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_dir_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class CreateDirectoryResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.CreateDirectoryResponse) */ {
   public:
    inline CreateDirectoryResponse() : CreateDirectoryResponse(nullptr) {}
    ~CreateDirectoryResponse() override;
    explicit constexpr CreateDirectoryResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    CreateDirectoryResponse(const CreateDirectoryResponse& from);
    CreateDirectoryResponse(CreateDirectoryResponse&& from) noexcept
      : CreateDirectoryResponse() {
      *this = ::std::move(from);
    }
  
    inline CreateDirectoryResponse& operator=(const CreateDirectoryResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline CreateDirectoryResponse& operator=(CreateDirectoryResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const CreateDirectoryResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const CreateDirectoryResponse* internal_default_instance() {
      return reinterpret_cast<const CreateDirectoryResponse*>(
                 &_CreateDirectoryResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      9;
  
    friend void swap(CreateDirectoryResponse& a, CreateDirectoryResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(CreateDirectoryResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(CreateDirectoryResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline CreateDirectoryResponse* New() const final {
      return new CreateDirectoryResponse();
    }
  
    CreateDirectoryResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<CreateDirectoryResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const CreateDirectoryResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const CreateDirectoryResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(CreateDirectoryResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.CreateDirectoryResponse";
    }
    protected:
    explicit CreateDirectoryResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.CreateDirectoryResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class RemoveDirectoryRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.RemoveDirectoryRequest) */ {
   public:
    inline RemoveDirectoryRequest() : RemoveDirectoryRequest(nullptr) {}
    ~RemoveDirectoryRequest() override;
    explicit constexpr RemoveDirectoryRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    RemoveDirectoryRequest(const RemoveDirectoryRequest& from);
    RemoveDirectoryRequest(RemoveDirectoryRequest&& from) noexcept
      : RemoveDirectoryRequest() {
      *this = ::std::move(from);
    }
  
    inline RemoveDirectoryRequest& operator=(const RemoveDirectoryRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline RemoveDirectoryRequest& operator=(RemoveDirectoryRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const RemoveDirectoryRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const RemoveDirectoryRequest* internal_default_instance() {
      return reinterpret_cast<const RemoveDirectoryRequest*>(
                 &_RemoveDirectoryRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      10;
  
    friend void swap(RemoveDirectoryRequest& a, RemoveDirectoryRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(RemoveDirectoryRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(RemoveDirectoryRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline RemoveDirectoryRequest* New() const final {
      return new RemoveDirectoryRequest();
    }
  
    RemoveDirectoryRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<RemoveDirectoryRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const RemoveDirectoryRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const RemoveDirectoryRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(RemoveDirectoryRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.RemoveDirectoryRequest";
    }
    protected:
    explicit RemoveDirectoryRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRemoteDirFieldNumber = 1,
    };
    // string remote_dir = 1;
    void clear_remote_dir();
    const std::string& remote_dir() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_dir(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_dir();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_dir();
    void set_allocated_remote_dir(std::string* remote_dir);
    private:
    const std::string& _internal_remote_dir() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_dir(const std::string& value);
    std::string* _internal_mutable_remote_dir();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.RemoveDirectoryRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_dir_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class RemoveDirectoryResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.RemoveDirectoryResponse) */ {
   public:
    inline RemoveDirectoryResponse() : RemoveDirectoryResponse(nullptr) {}
    ~RemoveDirectoryResponse() override;
    explicit constexpr RemoveDirectoryResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    RemoveDirectoryResponse(const RemoveDirectoryResponse& from);
    RemoveDirectoryResponse(RemoveDirectoryResponse&& from) noexcept
      : RemoveDirectoryResponse() {
      *this = ::std::move(from);
    }
  
    inline RemoveDirectoryResponse& operator=(const RemoveDirectoryResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline RemoveDirectoryResponse& operator=(RemoveDirectoryResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const RemoveDirectoryResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const RemoveDirectoryResponse* internal_default_instance() {
      return reinterpret_cast<const RemoveDirectoryResponse*>(
                 &_RemoveDirectoryResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      11;
  
    friend void swap(RemoveDirectoryResponse& a, RemoveDirectoryResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(RemoveDirectoryResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(RemoveDirectoryResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline RemoveDirectoryResponse* New() const final {
      return new RemoveDirectoryResponse();
    }
  
    RemoveDirectoryResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<RemoveDirectoryResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const RemoveDirectoryResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const RemoveDirectoryResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(RemoveDirectoryResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.RemoveDirectoryResponse";
    }
    protected:
    explicit RemoveDirectoryResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.RemoveDirectoryResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class RemoveFileRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.RemoveFileRequest) */ {
   public:
    inline RemoveFileRequest() : RemoveFileRequest(nullptr) {}
    ~RemoveFileRequest() override;
    explicit constexpr RemoveFileRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    RemoveFileRequest(const RemoveFileRequest& from);
    RemoveFileRequest(RemoveFileRequest&& from) noexcept
      : RemoveFileRequest() {
      *this = ::std::move(from);
    }
  
    inline RemoveFileRequest& operator=(const RemoveFileRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline RemoveFileRequest& operator=(RemoveFileRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const RemoveFileRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const RemoveFileRequest* internal_default_instance() {
      return reinterpret_cast<const RemoveFileRequest*>(
                 &_RemoveFileRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      12;
  
    friend void swap(RemoveFileRequest& a, RemoveFileRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(RemoveFileRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(RemoveFileRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline RemoveFileRequest* New() const final {
      return new RemoveFileRequest();
    }
  
    RemoveFileRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<RemoveFileRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const RemoveFileRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const RemoveFileRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(RemoveFileRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.RemoveFileRequest";
    }
    protected:
    explicit RemoveFileRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRemoteFilePathFieldNumber = 1,
    };
    // string remote_file_path = 1;
    void clear_remote_file_path();
    const std::string& remote_file_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_file_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_file_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_file_path();
    void set_allocated_remote_file_path(std::string* remote_file_path);
    private:
    const std::string& _internal_remote_file_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_file_path(const std::string& value);
    std::string* _internal_mutable_remote_file_path();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.RemoveFileRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_file_path_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class RemoveFileResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.RemoveFileResponse) */ {
   public:
    inline RemoveFileResponse() : RemoveFileResponse(nullptr) {}
    ~RemoveFileResponse() override;
    explicit constexpr RemoveFileResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    RemoveFileResponse(const RemoveFileResponse& from);
    RemoveFileResponse(RemoveFileResponse&& from) noexcept
      : RemoveFileResponse() {
      *this = ::std::move(from);
    }
  
    inline RemoveFileResponse& operator=(const RemoveFileResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline RemoveFileResponse& operator=(RemoveFileResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const RemoveFileResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const RemoveFileResponse* internal_default_instance() {
      return reinterpret_cast<const RemoveFileResponse*>(
                 &_RemoveFileResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      13;
  
    friend void swap(RemoveFileResponse& a, RemoveFileResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(RemoveFileResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(RemoveFileResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline RemoveFileResponse* New() const final {
      return new RemoveFileResponse();
    }
  
    RemoveFileResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<RemoveFileResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const RemoveFileResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const RemoveFileResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(RemoveFileResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.RemoveFileResponse";
    }
    protected:
    explicit RemoveFileResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.RemoveFileResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class RenameRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.RenameRequest) */ {
   public:
    inline RenameRequest() : RenameRequest(nullptr) {}
    ~RenameRequest() override;
    explicit constexpr RenameRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    RenameRequest(const RenameRequest& from);
    RenameRequest(RenameRequest&& from) noexcept
      : RenameRequest() {
      *this = ::std::move(from);
    }
  
    inline RenameRequest& operator=(const RenameRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline RenameRequest& operator=(RenameRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const RenameRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const RenameRequest* internal_default_instance() {
      return reinterpret_cast<const RenameRequest*>(
                 &_RenameRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      14;
  
    friend void swap(RenameRequest& a, RenameRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(RenameRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(RenameRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline RenameRequest* New() const final {
      return new RenameRequest();
    }
  
    RenameRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<RenameRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const RenameRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const RenameRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(RenameRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.RenameRequest";
    }
    protected:
    explicit RenameRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRemoteFromPathFieldNumber = 1,
      kRemoteToPathFieldNumber = 2,
    };
    // string remote_from_path = 1;
    void clear_remote_from_path();
    const std::string& remote_from_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_from_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_from_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_from_path();
    void set_allocated_remote_from_path(std::string* remote_from_path);
    private:
    const std::string& _internal_remote_from_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_from_path(const std::string& value);
    std::string* _internal_mutable_remote_from_path();
    public:
  
    // string remote_to_path = 2;
    void clear_remote_to_path();
    const std::string& remote_to_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_to_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_to_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_to_path();
    void set_allocated_remote_to_path(std::string* remote_to_path);
    private:
    const std::string& _internal_remote_to_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_to_path(const std::string& value);
    std::string* _internal_mutable_remote_to_path();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.RenameRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_from_path_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_to_path_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class RenameResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.RenameResponse) */ {
   public:
    inline RenameResponse() : RenameResponse(nullptr) {}
    ~RenameResponse() override;
    explicit constexpr RenameResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    RenameResponse(const RenameResponse& from);
    RenameResponse(RenameResponse&& from) noexcept
      : RenameResponse() {
      *this = ::std::move(from);
    }
  
    inline RenameResponse& operator=(const RenameResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline RenameResponse& operator=(RenameResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const RenameResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const RenameResponse* internal_default_instance() {
      return reinterpret_cast<const RenameResponse*>(
                 &_RenameResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      15;
  
    friend void swap(RenameResponse& a, RenameResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(RenameResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(RenameResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline RenameResponse* New() const final {
      return new RenameResponse();
    }
  
    RenameResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<RenameResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const RenameResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const RenameResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(RenameResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.RenameResponse";
    }
    protected:
    explicit RenameResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.RenameResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class AreFilesIdenticalRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.AreFilesIdenticalRequest) */ {
   public:
    inline AreFilesIdenticalRequest() : AreFilesIdenticalRequest(nullptr) {}
    ~AreFilesIdenticalRequest() override;
    explicit constexpr AreFilesIdenticalRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    AreFilesIdenticalRequest(const AreFilesIdenticalRequest& from);
    AreFilesIdenticalRequest(AreFilesIdenticalRequest&& from) noexcept
      : AreFilesIdenticalRequest() {
      *this = ::std::move(from);
    }
  
    inline AreFilesIdenticalRequest& operator=(const AreFilesIdenticalRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline AreFilesIdenticalRequest& operator=(AreFilesIdenticalRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const AreFilesIdenticalRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const AreFilesIdenticalRequest* internal_default_instance() {
      return reinterpret_cast<const AreFilesIdenticalRequest*>(
                 &_AreFilesIdenticalRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      16;
  
    friend void swap(AreFilesIdenticalRequest& a, AreFilesIdenticalRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(AreFilesIdenticalRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(AreFilesIdenticalRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline AreFilesIdenticalRequest* New() const final {
      return new AreFilesIdenticalRequest();
    }
  
    AreFilesIdenticalRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<AreFilesIdenticalRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const AreFilesIdenticalRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const AreFilesIdenticalRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(AreFilesIdenticalRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.AreFilesIdenticalRequest";
    }
    protected:
    explicit AreFilesIdenticalRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kLocalFilePathFieldNumber = 1,
      kRemoteFilePathFieldNumber = 2,
    };
    // string local_file_path = 1;
    void clear_local_file_path();
    const std::string& local_file_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_local_file_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_local_file_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_local_file_path();
    void set_allocated_local_file_path(std::string* local_file_path);
    private:
    const std::string& _internal_local_file_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_local_file_path(const std::string& value);
    std::string* _internal_mutable_local_file_path();
    public:
  
    // string remote_file_path = 2;
    void clear_remote_file_path();
    const std::string& remote_file_path() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_remote_file_path(ArgT0&& arg0, ArgT... args);
    std::string* mutable_remote_file_path();
    PROTOBUF_MUST_USE_RESULT std::string* release_remote_file_path();
    void set_allocated_remote_file_path(std::string* remote_file_path);
    private:
    const std::string& _internal_remote_file_path() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_remote_file_path(const std::string& value);
    std::string* _internal_mutable_remote_file_path();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.AreFilesIdenticalRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr local_file_path_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr remote_file_path_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class AreFilesIdenticalResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.AreFilesIdenticalResponse) */ {
   public:
    inline AreFilesIdenticalResponse() : AreFilesIdenticalResponse(nullptr) {}
    ~AreFilesIdenticalResponse() override;
    explicit constexpr AreFilesIdenticalResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    AreFilesIdenticalResponse(const AreFilesIdenticalResponse& from);
    AreFilesIdenticalResponse(AreFilesIdenticalResponse&& from) noexcept
      : AreFilesIdenticalResponse() {
      *this = ::std::move(from);
    }
  
    inline AreFilesIdenticalResponse& operator=(const AreFilesIdenticalResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline AreFilesIdenticalResponse& operator=(AreFilesIdenticalResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const AreFilesIdenticalResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const AreFilesIdenticalResponse* internal_default_instance() {
      return reinterpret_cast<const AreFilesIdenticalResponse*>(
                 &_AreFilesIdenticalResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      17;
  
    friend void swap(AreFilesIdenticalResponse& a, AreFilesIdenticalResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(AreFilesIdenticalResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(AreFilesIdenticalResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline AreFilesIdenticalResponse* New() const final {
      return new AreFilesIdenticalResponse();
    }
  
    AreFilesIdenticalResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<AreFilesIdenticalResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const AreFilesIdenticalResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const AreFilesIdenticalResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(AreFilesIdenticalResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.AreFilesIdenticalResponse";
    }
    protected:
    explicit AreFilesIdenticalResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
      kAreIdenticalFieldNumber = 2,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // bool are_identical = 2;
    void clear_are_identical();
    bool are_identical() const;
    void set_are_identical(bool value);
    private:
    bool _internal_are_identical() const;
    void _internal_set_are_identical(bool value);
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.AreFilesIdenticalResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    bool are_identical_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class SetRootDirectoryRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.SetRootDirectoryRequest) */ {
   public:
    inline SetRootDirectoryRequest() : SetRootDirectoryRequest(nullptr) {}
    ~SetRootDirectoryRequest() override;
    explicit constexpr SetRootDirectoryRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    SetRootDirectoryRequest(const SetRootDirectoryRequest& from);
    SetRootDirectoryRequest(SetRootDirectoryRequest&& from) noexcept
      : SetRootDirectoryRequest() {
      *this = ::std::move(from);
    }
  
    inline SetRootDirectoryRequest& operator=(const SetRootDirectoryRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline SetRootDirectoryRequest& operator=(SetRootDirectoryRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const SetRootDirectoryRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const SetRootDirectoryRequest* internal_default_instance() {
      return reinterpret_cast<const SetRootDirectoryRequest*>(
                 &_SetRootDirectoryRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      18;
  
    friend void swap(SetRootDirectoryRequest& a, SetRootDirectoryRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(SetRootDirectoryRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(SetRootDirectoryRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline SetRootDirectoryRequest* New() const final {
      return new SetRootDirectoryRequest();
    }
  
    SetRootDirectoryRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<SetRootDirectoryRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const SetRootDirectoryRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const SetRootDirectoryRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(SetRootDirectoryRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.SetRootDirectoryRequest";
    }
    protected:
    explicit SetRootDirectoryRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kRootDirFieldNumber = 1,
    };
    // string root_dir = 1;
    void clear_root_dir();
    const std::string& root_dir() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_root_dir(ArgT0&& arg0, ArgT... args);
    std::string* mutable_root_dir();
    PROTOBUF_MUST_USE_RESULT std::string* release_root_dir();
    void set_allocated_root_dir(std::string* root_dir);
    private:
    const std::string& _internal_root_dir() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_root_dir(const std::string& value);
    std::string* _internal_mutable_root_dir();
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.SetRootDirectoryRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr root_dir_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class SetRootDirectoryResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.SetRootDirectoryResponse) */ {
   public:
    inline SetRootDirectoryResponse() : SetRootDirectoryResponse(nullptr) {}
    ~SetRootDirectoryResponse() override;
    explicit constexpr SetRootDirectoryResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    SetRootDirectoryResponse(const SetRootDirectoryResponse& from);
    SetRootDirectoryResponse(SetRootDirectoryResponse&& from) noexcept
      : SetRootDirectoryResponse() {
      *this = ::std::move(from);
    }
  
    inline SetRootDirectoryResponse& operator=(const SetRootDirectoryResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline SetRootDirectoryResponse& operator=(SetRootDirectoryResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const SetRootDirectoryResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const SetRootDirectoryResponse* internal_default_instance() {
      return reinterpret_cast<const SetRootDirectoryResponse*>(
                 &_SetRootDirectoryResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      19;
  
    friend void swap(SetRootDirectoryResponse& a, SetRootDirectoryResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(SetRootDirectoryResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(SetRootDirectoryResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline SetRootDirectoryResponse* New() const final {
      return new SetRootDirectoryResponse();
    }
  
    SetRootDirectoryResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<SetRootDirectoryResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const SetRootDirectoryResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const SetRootDirectoryResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(SetRootDirectoryResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.SetRootDirectoryResponse";
    }
    protected:
    explicit SetRootDirectoryResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.SetRootDirectoryResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class SetTargetCompidRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.SetTargetCompidRequest) */ {
   public:
    inline SetTargetCompidRequest() : SetTargetCompidRequest(nullptr) {}
    ~SetTargetCompidRequest() override;
    explicit constexpr SetTargetCompidRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    SetTargetCompidRequest(const SetTargetCompidRequest& from);
    SetTargetCompidRequest(SetTargetCompidRequest&& from) noexcept
      : SetTargetCompidRequest() {
      *this = ::std::move(from);
    }
  
    inline SetTargetCompidRequest& operator=(const SetTargetCompidRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline SetTargetCompidRequest& operator=(SetTargetCompidRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const SetTargetCompidRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const SetTargetCompidRequest* internal_default_instance() {
      return reinterpret_cast<const SetTargetCompidRequest*>(
                 &_SetTargetCompidRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      20;
  
    friend void swap(SetTargetCompidRequest& a, SetTargetCompidRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(SetTargetCompidRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(SetTargetCompidRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline SetTargetCompidRequest* New() const final {
      return new SetTargetCompidRequest();
    }
  
    SetTargetCompidRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<SetTargetCompidRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const SetTargetCompidRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const SetTargetCompidRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(SetTargetCompidRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.SetTargetCompidRequest";
    }
    protected:
    explicit SetTargetCompidRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kCompidFieldNumber = 1,
    };
    // uint32 compid = 1;
    void clear_compid();
    ::PROTOBUF_NAMESPACE_ID::uint32 compid() const;
    void set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value);
    private:
    ::PROTOBUF_NAMESPACE_ID::uint32 _internal_compid() const;
    void _internal_set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value);
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.SetTargetCompidRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::uint32 compid_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class SetTargetCompidResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.SetTargetCompidResponse) */ {
   public:
    inline SetTargetCompidResponse() : SetTargetCompidResponse(nullptr) {}
    ~SetTargetCompidResponse() override;
    explicit constexpr SetTargetCompidResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    SetTargetCompidResponse(const SetTargetCompidResponse& from);
    SetTargetCompidResponse(SetTargetCompidResponse&& from) noexcept
      : SetTargetCompidResponse() {
      *this = ::std::move(from);
    }
  
    inline SetTargetCompidResponse& operator=(const SetTargetCompidResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline SetTargetCompidResponse& operator=(SetTargetCompidResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const SetTargetCompidResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const SetTargetCompidResponse* internal_default_instance() {
      return reinterpret_cast<const SetTargetCompidResponse*>(
                 &_SetTargetCompidResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      21;
  
    friend void swap(SetTargetCompidResponse& a, SetTargetCompidResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(SetTargetCompidResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(SetTargetCompidResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline SetTargetCompidResponse* New() const final {
      return new SetTargetCompidResponse();
    }
  
    SetTargetCompidResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<SetTargetCompidResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const SetTargetCompidResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const SetTargetCompidResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(SetTargetCompidResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.SetTargetCompidResponse";
    }
    protected:
    explicit SetTargetCompidResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kFtpResultFieldNumber = 1,
    };
    // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
    bool has_ftp_result() const;
    private:
    bool _internal_has_ftp_result() const;
    public:
    void clear_ftp_result();
    const ::mavsdk::rpc::ftp::FtpResult& ftp_result() const;
    PROTOBUF_MUST_USE_RESULT ::mavsdk::rpc::ftp::FtpResult* release_ftp_result();
    ::mavsdk::rpc::ftp::FtpResult* mutable_ftp_result();
    void set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result);
    private:
    const ::mavsdk::rpc::ftp::FtpResult& _internal_ftp_result() const;
    ::mavsdk::rpc::ftp::FtpResult* _internal_mutable_ftp_result();
    public:
    void unsafe_arena_set_allocated_ftp_result(
        ::mavsdk::rpc::ftp::FtpResult* ftp_result);
    ::mavsdk::rpc::ftp::FtpResult* unsafe_arena_release_ftp_result();
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.SetTargetCompidResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::mavsdk::rpc::ftp::FtpResult* ftp_result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class GetOurCompidRequest final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.GetOurCompidRequest) */ {
   public:
    inline GetOurCompidRequest() : GetOurCompidRequest(nullptr) {}
    ~GetOurCompidRequest() override;
    explicit constexpr GetOurCompidRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    GetOurCompidRequest(const GetOurCompidRequest& from);
    GetOurCompidRequest(GetOurCompidRequest&& from) noexcept
      : GetOurCompidRequest() {
      *this = ::std::move(from);
    }
  
    inline GetOurCompidRequest& operator=(const GetOurCompidRequest& from) {
      CopyFrom(from);
      return *this;
    }
    inline GetOurCompidRequest& operator=(GetOurCompidRequest&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const GetOurCompidRequest& default_instance() {
      return *internal_default_instance();
    }
    static inline const GetOurCompidRequest* internal_default_instance() {
      return reinterpret_cast<const GetOurCompidRequest*>(
                 &_GetOurCompidRequest_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      22;
  
    friend void swap(GetOurCompidRequest& a, GetOurCompidRequest& b) {
      a.Swap(&b);
    }
    inline void Swap(GetOurCompidRequest* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(GetOurCompidRequest* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline GetOurCompidRequest* New() const final {
      return new GetOurCompidRequest();
    }
  
    GetOurCompidRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<GetOurCompidRequest>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const GetOurCompidRequest& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const GetOurCompidRequest& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(GetOurCompidRequest* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.GetOurCompidRequest";
    }
    protected:
    explicit GetOurCompidRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.GetOurCompidRequest)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class GetOurCompidResponse final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.GetOurCompidResponse) */ {
   public:
    inline GetOurCompidResponse() : GetOurCompidResponse(nullptr) {}
    ~GetOurCompidResponse() override;
    explicit constexpr GetOurCompidResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    GetOurCompidResponse(const GetOurCompidResponse& from);
    GetOurCompidResponse(GetOurCompidResponse&& from) noexcept
      : GetOurCompidResponse() {
      *this = ::std::move(from);
    }
  
    inline GetOurCompidResponse& operator=(const GetOurCompidResponse& from) {
      CopyFrom(from);
      return *this;
    }
    inline GetOurCompidResponse& operator=(GetOurCompidResponse&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const GetOurCompidResponse& default_instance() {
      return *internal_default_instance();
    }
    static inline const GetOurCompidResponse* internal_default_instance() {
      return reinterpret_cast<const GetOurCompidResponse*>(
                 &_GetOurCompidResponse_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      23;
  
    friend void swap(GetOurCompidResponse& a, GetOurCompidResponse& b) {
      a.Swap(&b);
    }
    inline void Swap(GetOurCompidResponse* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(GetOurCompidResponse* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline GetOurCompidResponse* New() const final {
      return new GetOurCompidResponse();
    }
  
    GetOurCompidResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<GetOurCompidResponse>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const GetOurCompidResponse& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const GetOurCompidResponse& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(GetOurCompidResponse* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.GetOurCompidResponse";
    }
    protected:
    explicit GetOurCompidResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kCompidFieldNumber = 1,
    };
    // uint32 compid = 1;
    void clear_compid();
    ::PROTOBUF_NAMESPACE_ID::uint32 compid() const;
    void set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value);
    private:
    ::PROTOBUF_NAMESPACE_ID::uint32 _internal_compid() const;
    void _internal_set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value);
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.GetOurCompidResponse)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::uint32 compid_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class ProgressData final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.ProgressData) */ {
   public:
    inline ProgressData() : ProgressData(nullptr) {}
    ~ProgressData() override;
    explicit constexpr ProgressData(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    ProgressData(const ProgressData& from);
    ProgressData(ProgressData&& from) noexcept
      : ProgressData() {
      *this = ::std::move(from);
    }
  
    inline ProgressData& operator=(const ProgressData& from) {
      CopyFrom(from);
      return *this;
    }
    inline ProgressData& operator=(ProgressData&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const ProgressData& default_instance() {
      return *internal_default_instance();
    }
    static inline const ProgressData* internal_default_instance() {
      return reinterpret_cast<const ProgressData*>(
                 &_ProgressData_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      24;
  
    friend void swap(ProgressData& a, ProgressData& b) {
      a.Swap(&b);
    }
    inline void Swap(ProgressData* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(ProgressData* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline ProgressData* New() const final {
      return new ProgressData();
    }
  
    ProgressData* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<ProgressData>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const ProgressData& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const ProgressData& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(ProgressData* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.ProgressData";
    }
    protected:
    explicit ProgressData(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kBytesTransferredFieldNumber = 1,
      kTotalBytesFieldNumber = 2,
    };
    // uint32 bytes_transferred = 1;
    void clear_bytes_transferred();
    ::PROTOBUF_NAMESPACE_ID::uint32 bytes_transferred() const;
    void set_bytes_transferred(::PROTOBUF_NAMESPACE_ID::uint32 value);
    private:
    ::PROTOBUF_NAMESPACE_ID::uint32 _internal_bytes_transferred() const;
    void _internal_set_bytes_transferred(::PROTOBUF_NAMESPACE_ID::uint32 value);
    public:
  
    // uint32 total_bytes = 2;
    void clear_total_bytes();
    ::PROTOBUF_NAMESPACE_ID::uint32 total_bytes() const;
    void set_total_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value);
    private:
    ::PROTOBUF_NAMESPACE_ID::uint32 _internal_total_bytes() const;
    void _internal_set_total_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value);
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.ProgressData)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::uint32 bytes_transferred_;
    ::PROTOBUF_NAMESPACE_ID::uint32 total_bytes_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // -------------------------------------------------------------------
  
  class FtpResult final :
      public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:mavsdk.rpc.ftp.FtpResult) */ {
   public:
    inline FtpResult() : FtpResult(nullptr) {}
    ~FtpResult() override;
    explicit constexpr FtpResult(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
  
    FtpResult(const FtpResult& from);
    FtpResult(FtpResult&& from) noexcept
      : FtpResult() {
      *this = ::std::move(from);
    }
  
    inline FtpResult& operator=(const FtpResult& from) {
      CopyFrom(from);
      return *this;
    }
    inline FtpResult& operator=(FtpResult&& from) noexcept {
      if (this == &from) return *this;
      if (GetOwningArena() == from.GetOwningArena()) {
        InternalSwap(&from);
      } else {
        CopyFrom(from);
      }
      return *this;
    }
  
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
      return GetDescriptor();
    }
    static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
      return default_instance().GetMetadata().descriptor;
    }
    static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
      return default_instance().GetMetadata().reflection;
    }
    static const FtpResult& default_instance() {
      return *internal_default_instance();
    }
    static inline const FtpResult* internal_default_instance() {
      return reinterpret_cast<const FtpResult*>(
                 &_FtpResult_default_instance_);
    }
    static constexpr int kIndexInFileMessages =
      25;
  
    friend void swap(FtpResult& a, FtpResult& b) {
      a.Swap(&b);
    }
    inline void Swap(FtpResult* other) {
      if (other == this) return;
      if (GetOwningArena() == other->GetOwningArena()) {
        InternalSwap(other);
      } else {
        ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
      }
    }
    void UnsafeArenaSwap(FtpResult* other) {
      if (other == this) return;
      GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
      InternalSwap(other);
    }
  
    // implements Message ----------------------------------------------
  
    inline FtpResult* New() const final {
      return new FtpResult();
    }
  
    FtpResult* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
      return CreateMaybeMessage<FtpResult>(arena);
    }
    using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
    void CopyFrom(const FtpResult& from);
    using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
    void MergeFrom(const FtpResult& from);
    private:
    static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to, const ::PROTOBUF_NAMESPACE_ID::Message&from);
    public:
    PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
    bool IsInitialized() const final;
  
    size_t ByteSizeLong() const final;
    const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
    ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
        ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
    int GetCachedSize() const final { return _cached_size_.Get(); }
  
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const final;
    void InternalSwap(FtpResult* other);
    friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
    static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
      return "mavsdk.rpc.ftp.FtpResult";
    }
    protected:
    explicit FtpResult(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned = false);
    private:
    static void ArenaDtor(void* object);
    inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
    public:
  
    static const ClassData _class_data_;
    const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final;
  
    ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
  
    // nested types ----------------------------------------------------
  
    typedef FtpResult_Result Result;
    static constexpr Result RESULT_UNKNOWN =
      FtpResult_Result_RESULT_UNKNOWN;
    static constexpr Result RESULT_SUCCESS =
      FtpResult_Result_RESULT_SUCCESS;
    static constexpr Result RESULT_NEXT =
      FtpResult_Result_RESULT_NEXT;
    static constexpr Result RESULT_TIMEOUT =
      FtpResult_Result_RESULT_TIMEOUT;
    static constexpr Result RESULT_BUSY =
      FtpResult_Result_RESULT_BUSY;
    static constexpr Result RESULT_FILE_IO_ERROR =
      FtpResult_Result_RESULT_FILE_IO_ERROR;
    static constexpr Result RESULT_FILE_EXISTS =
      FtpResult_Result_RESULT_FILE_EXISTS;
    static constexpr Result RESULT_FILE_DOES_NOT_EXIST =
      FtpResult_Result_RESULT_FILE_DOES_NOT_EXIST;
    static constexpr Result RESULT_FILE_PROTECTED =
      FtpResult_Result_RESULT_FILE_PROTECTED;
    static constexpr Result RESULT_INVALID_PARAMETER =
      FtpResult_Result_RESULT_INVALID_PARAMETER;
    static constexpr Result RESULT_UNSUPPORTED =
      FtpResult_Result_RESULT_UNSUPPORTED;
    static constexpr Result RESULT_PROTOCOL_ERROR =
      FtpResult_Result_RESULT_PROTOCOL_ERROR;
    static constexpr Result RESULT_NO_SYSTEM =
      FtpResult_Result_RESULT_NO_SYSTEM;
    static inline bool Result_IsValid(int value) {
      return FtpResult_Result_IsValid(value);
    }
    static constexpr Result Result_MIN =
      FtpResult_Result_Result_MIN;
    static constexpr Result Result_MAX =
      FtpResult_Result_Result_MAX;
    static constexpr int Result_ARRAYSIZE =
      FtpResult_Result_Result_ARRAYSIZE;
    static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
    Result_descriptor() {
      return FtpResult_Result_descriptor();
    }
    template<typename T>
    static inline const std::string& Result_Name(T enum_t_value) {
      static_assert(::std::is_same<T, Result>::value ||
        ::std::is_integral<T>::value,
        "Incorrect type passed to function Result_Name.");
      return FtpResult_Result_Name(enum_t_value);
    }
    static inline bool Result_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
        Result* value) {
      return FtpResult_Result_Parse(name, value);
    }
  
    // accessors -------------------------------------------------------
  
    enum : int {
      kResultStrFieldNumber = 2,
      kResultFieldNumber = 1,
    };
    // string result_str = 2;
    void clear_result_str();
    const std::string& result_str() const;
    template <typename ArgT0 = const std::string&, typename... ArgT>
    void set_result_str(ArgT0&& arg0, ArgT... args);
    std::string* mutable_result_str();
    PROTOBUF_MUST_USE_RESULT std::string* release_result_str();
    void set_allocated_result_str(std::string* result_str);
    private:
    const std::string& _internal_result_str() const;
    inline PROTOBUF_ALWAYS_INLINE void _internal_set_result_str(const std::string& value);
    std::string* _internal_mutable_result_str();
    public:
  
    // .mavsdk.rpc.ftp.FtpResult.Result result = 1;
    void clear_result();
    ::mavsdk::rpc::ftp::FtpResult_Result result() const;
    void set_result(::mavsdk::rpc::ftp::FtpResult_Result value);
    private:
    ::mavsdk::rpc::ftp::FtpResult_Result _internal_result() const;
    void _internal_set_result(::mavsdk::rpc::ftp::FtpResult_Result value);
    public:
  
    // @@protoc_insertion_point(class_scope:mavsdk.rpc.ftp.FtpResult)
   private:
    class _Internal;
  
    template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
    typedef void InternalArenaConstructable_;
    typedef void DestructorSkippable_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr result_str_;
    int result_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    friend struct ::TableStruct_ftp_2fftp_2eproto;
  };
  // ===================================================================
  
  
  // ===================================================================
  
  #ifdef __GNUC__
    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored "-Wstrict-aliasing"
  #endif  // __GNUC__
  // ResetRequest
  
  // -------------------------------------------------------------------
  
  // ResetResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool ResetResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool ResetResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void ResetResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& ResetResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& ResetResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.ResetResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void ResetResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.ResetResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ResetResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ResetResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.ResetResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ResetResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ResetResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.ResetResponse.ftp_result)
    return _msg;
  }
  inline void ResetResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.ResetResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // SubscribeDownloadRequest
  
  // string remote_file_path = 1;
  inline void SubscribeDownloadRequest::clear_remote_file_path() {
    remote_file_path_.ClearToEmpty();
  }
  inline const std::string& SubscribeDownloadRequest::remote_file_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SubscribeDownloadRequest.remote_file_path)
    return _internal_remote_file_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void SubscribeDownloadRequest::set_remote_file_path(ArgT0&& arg0, ArgT... args) {
   
   remote_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.SubscribeDownloadRequest.remote_file_path)
  }
  inline std::string* SubscribeDownloadRequest::mutable_remote_file_path() {
    std::string* _s = _internal_mutable_remote_file_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SubscribeDownloadRequest.remote_file_path)
    return _s;
  }
  inline const std::string& SubscribeDownloadRequest::_internal_remote_file_path() const {
    return remote_file_path_.Get();
  }
  inline void SubscribeDownloadRequest::_internal_set_remote_file_path(const std::string& value) {
    
    remote_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* SubscribeDownloadRequest::_internal_mutable_remote_file_path() {
    
    return remote_file_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* SubscribeDownloadRequest::release_remote_file_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SubscribeDownloadRequest.remote_file_path)
    return remote_file_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void SubscribeDownloadRequest::set_allocated_remote_file_path(std::string* remote_file_path) {
    if (remote_file_path != nullptr) {
      
    } else {
      
    }
    remote_file_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_file_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SubscribeDownloadRequest.remote_file_path)
  }
  
  // string local_dir = 2;
  inline void SubscribeDownloadRequest::clear_local_dir() {
    local_dir_.ClearToEmpty();
  }
  inline const std::string& SubscribeDownloadRequest::local_dir() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SubscribeDownloadRequest.local_dir)
    return _internal_local_dir();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void SubscribeDownloadRequest::set_local_dir(ArgT0&& arg0, ArgT... args) {
   
   local_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.SubscribeDownloadRequest.local_dir)
  }
  inline std::string* SubscribeDownloadRequest::mutable_local_dir() {
    std::string* _s = _internal_mutable_local_dir();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SubscribeDownloadRequest.local_dir)
    return _s;
  }
  inline const std::string& SubscribeDownloadRequest::_internal_local_dir() const {
    return local_dir_.Get();
  }
  inline void SubscribeDownloadRequest::_internal_set_local_dir(const std::string& value) {
    
    local_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* SubscribeDownloadRequest::_internal_mutable_local_dir() {
    
    return local_dir_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* SubscribeDownloadRequest::release_local_dir() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SubscribeDownloadRequest.local_dir)
    return local_dir_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void SubscribeDownloadRequest::set_allocated_local_dir(std::string* local_dir) {
    if (local_dir != nullptr) {
      
    } else {
      
    }
    local_dir_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), local_dir,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SubscribeDownloadRequest.local_dir)
  }
  
  // -------------------------------------------------------------------
  
  // DownloadResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool DownloadResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool DownloadResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void DownloadResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& DownloadResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& DownloadResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.DownloadResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void DownloadResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.DownloadResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* DownloadResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* DownloadResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.DownloadResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* DownloadResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* DownloadResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.DownloadResponse.ftp_result)
    return _msg;
  }
  inline void DownloadResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.DownloadResponse.ftp_result)
  }
  
  // .mavsdk.rpc.ftp.ProgressData progress_data = 2;
  inline bool DownloadResponse::_internal_has_progress_data() const {
    return this != internal_default_instance() && progress_data_ != nullptr;
  }
  inline bool DownloadResponse::has_progress_data() const {
    return _internal_has_progress_data();
  }
  inline void DownloadResponse::clear_progress_data() {
    if (GetArenaForAllocation() == nullptr && progress_data_ != nullptr) {
      delete progress_data_;
    }
    progress_data_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::ProgressData& DownloadResponse::_internal_progress_data() const {
    const ::mavsdk::rpc::ftp::ProgressData* p = progress_data_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::ProgressData&>(
        ::mavsdk::rpc::ftp::_ProgressData_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::ProgressData& DownloadResponse::progress_data() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.DownloadResponse.progress_data)
    return _internal_progress_data();
  }
  inline void DownloadResponse::unsafe_arena_set_allocated_progress_data(
      ::mavsdk::rpc::ftp::ProgressData* progress_data) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(progress_data_);
    }
    progress_data_ = progress_data;
    if (progress_data) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.DownloadResponse.progress_data)
  }
  inline ::mavsdk::rpc::ftp::ProgressData* DownloadResponse::release_progress_data() {
    
    ::mavsdk::rpc::ftp::ProgressData* temp = progress_data_;
    progress_data_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::ProgressData* DownloadResponse::unsafe_arena_release_progress_data() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.DownloadResponse.progress_data)
    
    ::mavsdk::rpc::ftp::ProgressData* temp = progress_data_;
    progress_data_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::ProgressData* DownloadResponse::_internal_mutable_progress_data() {
    
    if (progress_data_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::ProgressData>(GetArenaForAllocation());
      progress_data_ = p;
    }
    return progress_data_;
  }
  inline ::mavsdk::rpc::ftp::ProgressData* DownloadResponse::mutable_progress_data() {
    ::mavsdk::rpc::ftp::ProgressData* _msg = _internal_mutable_progress_data();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.DownloadResponse.progress_data)
    return _msg;
  }
  inline void DownloadResponse::set_allocated_progress_data(::mavsdk::rpc::ftp::ProgressData* progress_data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete progress_data_;
    }
    if (progress_data) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::ProgressData>::GetOwningArena(progress_data);
      if (message_arena != submessage_arena) {
        progress_data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, progress_data, submessage_arena);
      }
      
    } else {
      
    }
    progress_data_ = progress_data;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.DownloadResponse.progress_data)
  }
  
  // -------------------------------------------------------------------
  
  // SubscribeUploadRequest
  
  // string local_file_path = 1;
  inline void SubscribeUploadRequest::clear_local_file_path() {
    local_file_path_.ClearToEmpty();
  }
  inline const std::string& SubscribeUploadRequest::local_file_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SubscribeUploadRequest.local_file_path)
    return _internal_local_file_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void SubscribeUploadRequest::set_local_file_path(ArgT0&& arg0, ArgT... args) {
   
   local_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.SubscribeUploadRequest.local_file_path)
  }
  inline std::string* SubscribeUploadRequest::mutable_local_file_path() {
    std::string* _s = _internal_mutable_local_file_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SubscribeUploadRequest.local_file_path)
    return _s;
  }
  inline const std::string& SubscribeUploadRequest::_internal_local_file_path() const {
    return local_file_path_.Get();
  }
  inline void SubscribeUploadRequest::_internal_set_local_file_path(const std::string& value) {
    
    local_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* SubscribeUploadRequest::_internal_mutable_local_file_path() {
    
    return local_file_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* SubscribeUploadRequest::release_local_file_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SubscribeUploadRequest.local_file_path)
    return local_file_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void SubscribeUploadRequest::set_allocated_local_file_path(std::string* local_file_path) {
    if (local_file_path != nullptr) {
      
    } else {
      
    }
    local_file_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), local_file_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SubscribeUploadRequest.local_file_path)
  }
  
  // string remote_dir = 2;
  inline void SubscribeUploadRequest::clear_remote_dir() {
    remote_dir_.ClearToEmpty();
  }
  inline const std::string& SubscribeUploadRequest::remote_dir() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SubscribeUploadRequest.remote_dir)
    return _internal_remote_dir();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void SubscribeUploadRequest::set_remote_dir(ArgT0&& arg0, ArgT... args) {
   
   remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.SubscribeUploadRequest.remote_dir)
  }
  inline std::string* SubscribeUploadRequest::mutable_remote_dir() {
    std::string* _s = _internal_mutable_remote_dir();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SubscribeUploadRequest.remote_dir)
    return _s;
  }
  inline const std::string& SubscribeUploadRequest::_internal_remote_dir() const {
    return remote_dir_.Get();
  }
  inline void SubscribeUploadRequest::_internal_set_remote_dir(const std::string& value) {
    
    remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* SubscribeUploadRequest::_internal_mutable_remote_dir() {
    
    return remote_dir_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* SubscribeUploadRequest::release_remote_dir() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SubscribeUploadRequest.remote_dir)
    return remote_dir_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void SubscribeUploadRequest::set_allocated_remote_dir(std::string* remote_dir) {
    if (remote_dir != nullptr) {
      
    } else {
      
    }
    remote_dir_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_dir,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SubscribeUploadRequest.remote_dir)
  }
  
  // -------------------------------------------------------------------
  
  // UploadResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool UploadResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool UploadResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void UploadResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& UploadResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& UploadResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.UploadResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void UploadResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.UploadResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* UploadResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* UploadResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.UploadResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* UploadResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* UploadResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.UploadResponse.ftp_result)
    return _msg;
  }
  inline void UploadResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.UploadResponse.ftp_result)
  }
  
  // .mavsdk.rpc.ftp.ProgressData progress_data = 2;
  inline bool UploadResponse::_internal_has_progress_data() const {
    return this != internal_default_instance() && progress_data_ != nullptr;
  }
  inline bool UploadResponse::has_progress_data() const {
    return _internal_has_progress_data();
  }
  inline void UploadResponse::clear_progress_data() {
    if (GetArenaForAllocation() == nullptr && progress_data_ != nullptr) {
      delete progress_data_;
    }
    progress_data_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::ProgressData& UploadResponse::_internal_progress_data() const {
    const ::mavsdk::rpc::ftp::ProgressData* p = progress_data_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::ProgressData&>(
        ::mavsdk::rpc::ftp::_ProgressData_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::ProgressData& UploadResponse::progress_data() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.UploadResponse.progress_data)
    return _internal_progress_data();
  }
  inline void UploadResponse::unsafe_arena_set_allocated_progress_data(
      ::mavsdk::rpc::ftp::ProgressData* progress_data) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(progress_data_);
    }
    progress_data_ = progress_data;
    if (progress_data) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.UploadResponse.progress_data)
  }
  inline ::mavsdk::rpc::ftp::ProgressData* UploadResponse::release_progress_data() {
    
    ::mavsdk::rpc::ftp::ProgressData* temp = progress_data_;
    progress_data_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::ProgressData* UploadResponse::unsafe_arena_release_progress_data() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.UploadResponse.progress_data)
    
    ::mavsdk::rpc::ftp::ProgressData* temp = progress_data_;
    progress_data_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::ProgressData* UploadResponse::_internal_mutable_progress_data() {
    
    if (progress_data_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::ProgressData>(GetArenaForAllocation());
      progress_data_ = p;
    }
    return progress_data_;
  }
  inline ::mavsdk::rpc::ftp::ProgressData* UploadResponse::mutable_progress_data() {
    ::mavsdk::rpc::ftp::ProgressData* _msg = _internal_mutable_progress_data();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.UploadResponse.progress_data)
    return _msg;
  }
  inline void UploadResponse::set_allocated_progress_data(::mavsdk::rpc::ftp::ProgressData* progress_data) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete progress_data_;
    }
    if (progress_data) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::ProgressData>::GetOwningArena(progress_data);
      if (message_arena != submessage_arena) {
        progress_data = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, progress_data, submessage_arena);
      }
      
    } else {
      
    }
    progress_data_ = progress_data;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.UploadResponse.progress_data)
  }
  
  // -------------------------------------------------------------------
  
  // ListDirectoryRequest
  
  // string remote_dir = 1;
  inline void ListDirectoryRequest::clear_remote_dir() {
    remote_dir_.ClearToEmpty();
  }
  inline const std::string& ListDirectoryRequest::remote_dir() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.ListDirectoryRequest.remote_dir)
    return _internal_remote_dir();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void ListDirectoryRequest::set_remote_dir(ArgT0&& arg0, ArgT... args) {
   
   remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.ListDirectoryRequest.remote_dir)
  }
  inline std::string* ListDirectoryRequest::mutable_remote_dir() {
    std::string* _s = _internal_mutable_remote_dir();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.ListDirectoryRequest.remote_dir)
    return _s;
  }
  inline const std::string& ListDirectoryRequest::_internal_remote_dir() const {
    return remote_dir_.Get();
  }
  inline void ListDirectoryRequest::_internal_set_remote_dir(const std::string& value) {
    
    remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* ListDirectoryRequest::_internal_mutable_remote_dir() {
    
    return remote_dir_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* ListDirectoryRequest::release_remote_dir() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.ListDirectoryRequest.remote_dir)
    return remote_dir_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void ListDirectoryRequest::set_allocated_remote_dir(std::string* remote_dir) {
    if (remote_dir != nullptr) {
      
    } else {
      
    }
    remote_dir_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_dir,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.ListDirectoryRequest.remote_dir)
  }
  
  // -------------------------------------------------------------------
  
  // ListDirectoryResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool ListDirectoryResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool ListDirectoryResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void ListDirectoryResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& ListDirectoryResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& ListDirectoryResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.ListDirectoryResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void ListDirectoryResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.ListDirectoryResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ListDirectoryResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ListDirectoryResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.ListDirectoryResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ListDirectoryResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* ListDirectoryResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.ListDirectoryResponse.ftp_result)
    return _msg;
  }
  inline void ListDirectoryResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.ListDirectoryResponse.ftp_result)
  }
  
  // repeated string paths = 2;
  inline int ListDirectoryResponse::_internal_paths_size() const {
    return paths_.size();
  }
  inline int ListDirectoryResponse::paths_size() const {
    return _internal_paths_size();
  }
  inline void ListDirectoryResponse::clear_paths() {
    paths_.Clear();
  }
  inline std::string* ListDirectoryResponse::add_paths() {
    std::string* _s = _internal_add_paths();
    // @@protoc_insertion_point(field_add_mutable:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
    return _s;
  }
  inline const std::string& ListDirectoryResponse::_internal_paths(int index) const {
    return paths_.Get(index);
  }
  inline const std::string& ListDirectoryResponse::paths(int index) const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
    return _internal_paths(index);
  }
  inline std::string* ListDirectoryResponse::mutable_paths(int index) {
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
    return paths_.Mutable(index);
  }
  inline void ListDirectoryResponse::set_paths(int index, const std::string& value) {
    paths_.Mutable(index)->assign(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline void ListDirectoryResponse::set_paths(int index, std::string&& value) {
    paths_.Mutable(index)->assign(std::move(value));
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline void ListDirectoryResponse::set_paths(int index, const char* value) {
    GOOGLE_DCHECK(value != nullptr);
    paths_.Mutable(index)->assign(value);
    // @@protoc_insertion_point(field_set_char:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline void ListDirectoryResponse::set_paths(int index, const char* value, size_t size) {
    paths_.Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
    // @@protoc_insertion_point(field_set_pointer:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline std::string* ListDirectoryResponse::_internal_add_paths() {
    return paths_.Add();
  }
  inline void ListDirectoryResponse::add_paths(const std::string& value) {
    paths_.Add()->assign(value);
    // @@protoc_insertion_point(field_add:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline void ListDirectoryResponse::add_paths(std::string&& value) {
    paths_.Add(std::move(value));
    // @@protoc_insertion_point(field_add:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline void ListDirectoryResponse::add_paths(const char* value) {
    GOOGLE_DCHECK(value != nullptr);
    paths_.Add()->assign(value);
    // @@protoc_insertion_point(field_add_char:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline void ListDirectoryResponse::add_paths(const char* value, size_t size) {
    paths_.Add()->assign(reinterpret_cast<const char*>(value), size);
    // @@protoc_insertion_point(field_add_pointer:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
  }
  inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>&
  ListDirectoryResponse::paths() const {
    // @@protoc_insertion_point(field_list:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
    return paths_;
  }
  inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField<std::string>*
  ListDirectoryResponse::mutable_paths() {
    // @@protoc_insertion_point(field_mutable_list:mavsdk.rpc.ftp.ListDirectoryResponse.paths)
    return &paths_;
  }
  
  // -------------------------------------------------------------------
  
  // CreateDirectoryRequest
  
  // string remote_dir = 1;
  inline void CreateDirectoryRequest::clear_remote_dir() {
    remote_dir_.ClearToEmpty();
  }
  inline const std::string& CreateDirectoryRequest::remote_dir() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.CreateDirectoryRequest.remote_dir)
    return _internal_remote_dir();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void CreateDirectoryRequest::set_remote_dir(ArgT0&& arg0, ArgT... args) {
   
   remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.CreateDirectoryRequest.remote_dir)
  }
  inline std::string* CreateDirectoryRequest::mutable_remote_dir() {
    std::string* _s = _internal_mutable_remote_dir();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.CreateDirectoryRequest.remote_dir)
    return _s;
  }
  inline const std::string& CreateDirectoryRequest::_internal_remote_dir() const {
    return remote_dir_.Get();
  }
  inline void CreateDirectoryRequest::_internal_set_remote_dir(const std::string& value) {
    
    remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* CreateDirectoryRequest::_internal_mutable_remote_dir() {
    
    return remote_dir_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* CreateDirectoryRequest::release_remote_dir() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.CreateDirectoryRequest.remote_dir)
    return remote_dir_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void CreateDirectoryRequest::set_allocated_remote_dir(std::string* remote_dir) {
    if (remote_dir != nullptr) {
      
    } else {
      
    }
    remote_dir_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_dir,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.CreateDirectoryRequest.remote_dir)
  }
  
  // -------------------------------------------------------------------
  
  // CreateDirectoryResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool CreateDirectoryResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool CreateDirectoryResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void CreateDirectoryResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& CreateDirectoryResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& CreateDirectoryResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.CreateDirectoryResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void CreateDirectoryResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.CreateDirectoryResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* CreateDirectoryResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* CreateDirectoryResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.CreateDirectoryResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* CreateDirectoryResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* CreateDirectoryResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.CreateDirectoryResponse.ftp_result)
    return _msg;
  }
  inline void CreateDirectoryResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.CreateDirectoryResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // RemoveDirectoryRequest
  
  // string remote_dir = 1;
  inline void RemoveDirectoryRequest::clear_remote_dir() {
    remote_dir_.ClearToEmpty();
  }
  inline const std::string& RemoveDirectoryRequest::remote_dir() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RemoveDirectoryRequest.remote_dir)
    return _internal_remote_dir();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void RemoveDirectoryRequest::set_remote_dir(ArgT0&& arg0, ArgT... args) {
   
   remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.RemoveDirectoryRequest.remote_dir)
  }
  inline std::string* RemoveDirectoryRequest::mutable_remote_dir() {
    std::string* _s = _internal_mutable_remote_dir();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RemoveDirectoryRequest.remote_dir)
    return _s;
  }
  inline const std::string& RemoveDirectoryRequest::_internal_remote_dir() const {
    return remote_dir_.Get();
  }
  inline void RemoveDirectoryRequest::_internal_set_remote_dir(const std::string& value) {
    
    remote_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* RemoveDirectoryRequest::_internal_mutable_remote_dir() {
    
    return remote_dir_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* RemoveDirectoryRequest::release_remote_dir() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RemoveDirectoryRequest.remote_dir)
    return remote_dir_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void RemoveDirectoryRequest::set_allocated_remote_dir(std::string* remote_dir) {
    if (remote_dir != nullptr) {
      
    } else {
      
    }
    remote_dir_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_dir,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RemoveDirectoryRequest.remote_dir)
  }
  
  // -------------------------------------------------------------------
  
  // RemoveDirectoryResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool RemoveDirectoryResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool RemoveDirectoryResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void RemoveDirectoryResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& RemoveDirectoryResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& RemoveDirectoryResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RemoveDirectoryResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void RemoveDirectoryResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.RemoveDirectoryResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveDirectoryResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveDirectoryResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RemoveDirectoryResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveDirectoryResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveDirectoryResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RemoveDirectoryResponse.ftp_result)
    return _msg;
  }
  inline void RemoveDirectoryResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RemoveDirectoryResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // RemoveFileRequest
  
  // string remote_file_path = 1;
  inline void RemoveFileRequest::clear_remote_file_path() {
    remote_file_path_.ClearToEmpty();
  }
  inline const std::string& RemoveFileRequest::remote_file_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RemoveFileRequest.remote_file_path)
    return _internal_remote_file_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void RemoveFileRequest::set_remote_file_path(ArgT0&& arg0, ArgT... args) {
   
   remote_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.RemoveFileRequest.remote_file_path)
  }
  inline std::string* RemoveFileRequest::mutable_remote_file_path() {
    std::string* _s = _internal_mutable_remote_file_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RemoveFileRequest.remote_file_path)
    return _s;
  }
  inline const std::string& RemoveFileRequest::_internal_remote_file_path() const {
    return remote_file_path_.Get();
  }
  inline void RemoveFileRequest::_internal_set_remote_file_path(const std::string& value) {
    
    remote_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* RemoveFileRequest::_internal_mutable_remote_file_path() {
    
    return remote_file_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* RemoveFileRequest::release_remote_file_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RemoveFileRequest.remote_file_path)
    return remote_file_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void RemoveFileRequest::set_allocated_remote_file_path(std::string* remote_file_path) {
    if (remote_file_path != nullptr) {
      
    } else {
      
    }
    remote_file_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_file_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RemoveFileRequest.remote_file_path)
  }
  
  // -------------------------------------------------------------------
  
  // RemoveFileResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool RemoveFileResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool RemoveFileResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void RemoveFileResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& RemoveFileResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& RemoveFileResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RemoveFileResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void RemoveFileResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.RemoveFileResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveFileResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveFileResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RemoveFileResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveFileResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RemoveFileResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RemoveFileResponse.ftp_result)
    return _msg;
  }
  inline void RemoveFileResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RemoveFileResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // RenameRequest
  
  // string remote_from_path = 1;
  inline void RenameRequest::clear_remote_from_path() {
    remote_from_path_.ClearToEmpty();
  }
  inline const std::string& RenameRequest::remote_from_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RenameRequest.remote_from_path)
    return _internal_remote_from_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void RenameRequest::set_remote_from_path(ArgT0&& arg0, ArgT... args) {
   
   remote_from_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.RenameRequest.remote_from_path)
  }
  inline std::string* RenameRequest::mutable_remote_from_path() {
    std::string* _s = _internal_mutable_remote_from_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RenameRequest.remote_from_path)
    return _s;
  }
  inline const std::string& RenameRequest::_internal_remote_from_path() const {
    return remote_from_path_.Get();
  }
  inline void RenameRequest::_internal_set_remote_from_path(const std::string& value) {
    
    remote_from_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* RenameRequest::_internal_mutable_remote_from_path() {
    
    return remote_from_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* RenameRequest::release_remote_from_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RenameRequest.remote_from_path)
    return remote_from_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void RenameRequest::set_allocated_remote_from_path(std::string* remote_from_path) {
    if (remote_from_path != nullptr) {
      
    } else {
      
    }
    remote_from_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_from_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RenameRequest.remote_from_path)
  }
  
  // string remote_to_path = 2;
  inline void RenameRequest::clear_remote_to_path() {
    remote_to_path_.ClearToEmpty();
  }
  inline const std::string& RenameRequest::remote_to_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RenameRequest.remote_to_path)
    return _internal_remote_to_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void RenameRequest::set_remote_to_path(ArgT0&& arg0, ArgT... args) {
   
   remote_to_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.RenameRequest.remote_to_path)
  }
  inline std::string* RenameRequest::mutable_remote_to_path() {
    std::string* _s = _internal_mutable_remote_to_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RenameRequest.remote_to_path)
    return _s;
  }
  inline const std::string& RenameRequest::_internal_remote_to_path() const {
    return remote_to_path_.Get();
  }
  inline void RenameRequest::_internal_set_remote_to_path(const std::string& value) {
    
    remote_to_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* RenameRequest::_internal_mutable_remote_to_path() {
    
    return remote_to_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* RenameRequest::release_remote_to_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RenameRequest.remote_to_path)
    return remote_to_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void RenameRequest::set_allocated_remote_to_path(std::string* remote_to_path) {
    if (remote_to_path != nullptr) {
      
    } else {
      
    }
    remote_to_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_to_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RenameRequest.remote_to_path)
  }
  
  // -------------------------------------------------------------------
  
  // RenameResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool RenameResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool RenameResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void RenameResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& RenameResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& RenameResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.RenameResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void RenameResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.RenameResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RenameResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RenameResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.RenameResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RenameResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* RenameResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.RenameResponse.ftp_result)
    return _msg;
  }
  inline void RenameResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.RenameResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // AreFilesIdenticalRequest
  
  // string local_file_path = 1;
  inline void AreFilesIdenticalRequest::clear_local_file_path() {
    local_file_path_.ClearToEmpty();
  }
  inline const std::string& AreFilesIdenticalRequest::local_file_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.AreFilesIdenticalRequest.local_file_path)
    return _internal_local_file_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void AreFilesIdenticalRequest::set_local_file_path(ArgT0&& arg0, ArgT... args) {
   
   local_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.AreFilesIdenticalRequest.local_file_path)
  }
  inline std::string* AreFilesIdenticalRequest::mutable_local_file_path() {
    std::string* _s = _internal_mutable_local_file_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.AreFilesIdenticalRequest.local_file_path)
    return _s;
  }
  inline const std::string& AreFilesIdenticalRequest::_internal_local_file_path() const {
    return local_file_path_.Get();
  }
  inline void AreFilesIdenticalRequest::_internal_set_local_file_path(const std::string& value) {
    
    local_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* AreFilesIdenticalRequest::_internal_mutable_local_file_path() {
    
    return local_file_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* AreFilesIdenticalRequest::release_local_file_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.AreFilesIdenticalRequest.local_file_path)
    return local_file_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void AreFilesIdenticalRequest::set_allocated_local_file_path(std::string* local_file_path) {
    if (local_file_path != nullptr) {
      
    } else {
      
    }
    local_file_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), local_file_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.AreFilesIdenticalRequest.local_file_path)
  }
  
  // string remote_file_path = 2;
  inline void AreFilesIdenticalRequest::clear_remote_file_path() {
    remote_file_path_.ClearToEmpty();
  }
  inline const std::string& AreFilesIdenticalRequest::remote_file_path() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.AreFilesIdenticalRequest.remote_file_path)
    return _internal_remote_file_path();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void AreFilesIdenticalRequest::set_remote_file_path(ArgT0&& arg0, ArgT... args) {
   
   remote_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.AreFilesIdenticalRequest.remote_file_path)
  }
  inline std::string* AreFilesIdenticalRequest::mutable_remote_file_path() {
    std::string* _s = _internal_mutable_remote_file_path();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.AreFilesIdenticalRequest.remote_file_path)
    return _s;
  }
  inline const std::string& AreFilesIdenticalRequest::_internal_remote_file_path() const {
    return remote_file_path_.Get();
  }
  inline void AreFilesIdenticalRequest::_internal_set_remote_file_path(const std::string& value) {
    
    remote_file_path_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* AreFilesIdenticalRequest::_internal_mutable_remote_file_path() {
    
    return remote_file_path_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* AreFilesIdenticalRequest::release_remote_file_path() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.AreFilesIdenticalRequest.remote_file_path)
    return remote_file_path_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void AreFilesIdenticalRequest::set_allocated_remote_file_path(std::string* remote_file_path) {
    if (remote_file_path != nullptr) {
      
    } else {
      
    }
    remote_file_path_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), remote_file_path,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.AreFilesIdenticalRequest.remote_file_path)
  }
  
  // -------------------------------------------------------------------
  
  // AreFilesIdenticalResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool AreFilesIdenticalResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool AreFilesIdenticalResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void AreFilesIdenticalResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& AreFilesIdenticalResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& AreFilesIdenticalResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.AreFilesIdenticalResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void AreFilesIdenticalResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.AreFilesIdenticalResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* AreFilesIdenticalResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* AreFilesIdenticalResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.AreFilesIdenticalResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* AreFilesIdenticalResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* AreFilesIdenticalResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.AreFilesIdenticalResponse.ftp_result)
    return _msg;
  }
  inline void AreFilesIdenticalResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.AreFilesIdenticalResponse.ftp_result)
  }
  
  // bool are_identical = 2;
  inline void AreFilesIdenticalResponse::clear_are_identical() {
    are_identical_ = false;
  }
  inline bool AreFilesIdenticalResponse::_internal_are_identical() const {
    return are_identical_;
  }
  inline bool AreFilesIdenticalResponse::are_identical() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.AreFilesIdenticalResponse.are_identical)
    return _internal_are_identical();
  }
  inline void AreFilesIdenticalResponse::_internal_set_are_identical(bool value) {
    
    are_identical_ = value;
  }
  inline void AreFilesIdenticalResponse::set_are_identical(bool value) {
    _internal_set_are_identical(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.AreFilesIdenticalResponse.are_identical)
  }
  
  // -------------------------------------------------------------------
  
  // SetRootDirectoryRequest
  
  // string root_dir = 1;
  inline void SetRootDirectoryRequest::clear_root_dir() {
    root_dir_.ClearToEmpty();
  }
  inline const std::string& SetRootDirectoryRequest::root_dir() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SetRootDirectoryRequest.root_dir)
    return _internal_root_dir();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void SetRootDirectoryRequest::set_root_dir(ArgT0&& arg0, ArgT... args) {
   
   root_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.SetRootDirectoryRequest.root_dir)
  }
  inline std::string* SetRootDirectoryRequest::mutable_root_dir() {
    std::string* _s = _internal_mutable_root_dir();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SetRootDirectoryRequest.root_dir)
    return _s;
  }
  inline const std::string& SetRootDirectoryRequest::_internal_root_dir() const {
    return root_dir_.Get();
  }
  inline void SetRootDirectoryRequest::_internal_set_root_dir(const std::string& value) {
    
    root_dir_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* SetRootDirectoryRequest::_internal_mutable_root_dir() {
    
    return root_dir_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* SetRootDirectoryRequest::release_root_dir() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SetRootDirectoryRequest.root_dir)
    return root_dir_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void SetRootDirectoryRequest::set_allocated_root_dir(std::string* root_dir) {
    if (root_dir != nullptr) {
      
    } else {
      
    }
    root_dir_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), root_dir,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SetRootDirectoryRequest.root_dir)
  }
  
  // -------------------------------------------------------------------
  
  // SetRootDirectoryResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool SetRootDirectoryResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool SetRootDirectoryResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void SetRootDirectoryResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& SetRootDirectoryResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& SetRootDirectoryResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SetRootDirectoryResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void SetRootDirectoryResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.SetRootDirectoryResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetRootDirectoryResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetRootDirectoryResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SetRootDirectoryResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetRootDirectoryResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetRootDirectoryResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SetRootDirectoryResponse.ftp_result)
    return _msg;
  }
  inline void SetRootDirectoryResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SetRootDirectoryResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // SetTargetCompidRequest
  
  // uint32 compid = 1;
  inline void SetTargetCompidRequest::clear_compid() {
    compid_ = 0u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 SetTargetCompidRequest::_internal_compid() const {
    return compid_;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 SetTargetCompidRequest::compid() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SetTargetCompidRequest.compid)
    return _internal_compid();
  }
  inline void SetTargetCompidRequest::_internal_set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    
    compid_ = value;
  }
  inline void SetTargetCompidRequest::set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    _internal_set_compid(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.SetTargetCompidRequest.compid)
  }
  
  // -------------------------------------------------------------------
  
  // SetTargetCompidResponse
  
  // .mavsdk.rpc.ftp.FtpResult ftp_result = 1;
  inline bool SetTargetCompidResponse::_internal_has_ftp_result() const {
    return this != internal_default_instance() && ftp_result_ != nullptr;
  }
  inline bool SetTargetCompidResponse::has_ftp_result() const {
    return _internal_has_ftp_result();
  }
  inline void SetTargetCompidResponse::clear_ftp_result() {
    if (GetArenaForAllocation() == nullptr && ftp_result_ != nullptr) {
      delete ftp_result_;
    }
    ftp_result_ = nullptr;
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& SetTargetCompidResponse::_internal_ftp_result() const {
    const ::mavsdk::rpc::ftp::FtpResult* p = ftp_result_;
    return p != nullptr ? *p : reinterpret_cast<const ::mavsdk::rpc::ftp::FtpResult&>(
        ::mavsdk::rpc::ftp::_FtpResult_default_instance_);
  }
  inline const ::mavsdk::rpc::ftp::FtpResult& SetTargetCompidResponse::ftp_result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.SetTargetCompidResponse.ftp_result)
    return _internal_ftp_result();
  }
  inline void SetTargetCompidResponse::unsafe_arena_set_allocated_ftp_result(
      ::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    if (GetArenaForAllocation() == nullptr) {
      delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(ftp_result_);
    }
    ftp_result_ = ftp_result;
    if (ftp_result) {
      
    } else {
      
    }
    // @@protoc_insertion_point(field_unsafe_arena_set_allocated:mavsdk.rpc.ftp.SetTargetCompidResponse.ftp_result)
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetTargetCompidResponse::release_ftp_result() {
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
  #ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
    auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    if (GetArenaForAllocation() == nullptr) { delete old; }
  #else  // PROTOBUF_FORCE_COPY_IN_RELEASE
    if (GetArenaForAllocation() != nullptr) {
      temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
    }
  #endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetTargetCompidResponse::unsafe_arena_release_ftp_result() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.SetTargetCompidResponse.ftp_result)
    
    ::mavsdk::rpc::ftp::FtpResult* temp = ftp_result_;
    ftp_result_ = nullptr;
    return temp;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetTargetCompidResponse::_internal_mutable_ftp_result() {
    
    if (ftp_result_ == nullptr) {
      auto* p = CreateMaybeMessage<::mavsdk::rpc::ftp::FtpResult>(GetArenaForAllocation());
      ftp_result_ = p;
    }
    return ftp_result_;
  }
  inline ::mavsdk::rpc::ftp::FtpResult* SetTargetCompidResponse::mutable_ftp_result() {
    ::mavsdk::rpc::ftp::FtpResult* _msg = _internal_mutable_ftp_result();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.SetTargetCompidResponse.ftp_result)
    return _msg;
  }
  inline void SetTargetCompidResponse::set_allocated_ftp_result(::mavsdk::rpc::ftp::FtpResult* ftp_result) {
    ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
    if (message_arena == nullptr) {
      delete ftp_result_;
    }
    if (ftp_result) {
      ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
          ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::mavsdk::rpc::ftp::FtpResult>::GetOwningArena(ftp_result);
      if (message_arena != submessage_arena) {
        ftp_result = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
            message_arena, ftp_result, submessage_arena);
      }
      
    } else {
      
    }
    ftp_result_ = ftp_result;
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.SetTargetCompidResponse.ftp_result)
  }
  
  // -------------------------------------------------------------------
  
  // GetOurCompidRequest
  
  // -------------------------------------------------------------------
  
  // GetOurCompidResponse
  
  // uint32 compid = 1;
  inline void GetOurCompidResponse::clear_compid() {
    compid_ = 0u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 GetOurCompidResponse::_internal_compid() const {
    return compid_;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 GetOurCompidResponse::compid() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.GetOurCompidResponse.compid)
    return _internal_compid();
  }
  inline void GetOurCompidResponse::_internal_set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    
    compid_ = value;
  }
  inline void GetOurCompidResponse::set_compid(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    _internal_set_compid(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.GetOurCompidResponse.compid)
  }
  
  // -------------------------------------------------------------------
  
  // ProgressData
  
  // uint32 bytes_transferred = 1;
  inline void ProgressData::clear_bytes_transferred() {
    bytes_transferred_ = 0u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 ProgressData::_internal_bytes_transferred() const {
    return bytes_transferred_;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 ProgressData::bytes_transferred() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.ProgressData.bytes_transferred)
    return _internal_bytes_transferred();
  }
  inline void ProgressData::_internal_set_bytes_transferred(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    
    bytes_transferred_ = value;
  }
  inline void ProgressData::set_bytes_transferred(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    _internal_set_bytes_transferred(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.ProgressData.bytes_transferred)
  }
  
  // uint32 total_bytes = 2;
  inline void ProgressData::clear_total_bytes() {
    total_bytes_ = 0u;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 ProgressData::_internal_total_bytes() const {
    return total_bytes_;
  }
  inline ::PROTOBUF_NAMESPACE_ID::uint32 ProgressData::total_bytes() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.ProgressData.total_bytes)
    return _internal_total_bytes();
  }
  inline void ProgressData::_internal_set_total_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    
    total_bytes_ = value;
  }
  inline void ProgressData::set_total_bytes(::PROTOBUF_NAMESPACE_ID::uint32 value) {
    _internal_set_total_bytes(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.ProgressData.total_bytes)
  }
  
  // -------------------------------------------------------------------
  
  // FtpResult
  
  // .mavsdk.rpc.ftp.FtpResult.Result result = 1;
  inline void FtpResult::clear_result() {
    result_ = 0;
  }
  inline ::mavsdk::rpc::ftp::FtpResult_Result FtpResult::_internal_result() const {
    return static_cast< ::mavsdk::rpc::ftp::FtpResult_Result >(result_);
  }
  inline ::mavsdk::rpc::ftp::FtpResult_Result FtpResult::result() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.FtpResult.result)
    return _internal_result();
  }
  inline void FtpResult::_internal_set_result(::mavsdk::rpc::ftp::FtpResult_Result value) {
    
    result_ = value;
  }
  inline void FtpResult::set_result(::mavsdk::rpc::ftp::FtpResult_Result value) {
    _internal_set_result(value);
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.FtpResult.result)
  }
  
  // string result_str = 2;
  inline void FtpResult::clear_result_str() {
    result_str_.ClearToEmpty();
  }
  inline const std::string& FtpResult::result_str() const {
    // @@protoc_insertion_point(field_get:mavsdk.rpc.ftp.FtpResult.result_str)
    return _internal_result_str();
  }
  template <typename ArgT0, typename... ArgT>
  inline PROTOBUF_ALWAYS_INLINE
  void FtpResult::set_result_str(ArgT0&& arg0, ArgT... args) {
   
   result_str_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
    // @@protoc_insertion_point(field_set:mavsdk.rpc.ftp.FtpResult.result_str)
  }
  inline std::string* FtpResult::mutable_result_str() {
    std::string* _s = _internal_mutable_result_str();
    // @@protoc_insertion_point(field_mutable:mavsdk.rpc.ftp.FtpResult.result_str)
    return _s;
  }
  inline const std::string& FtpResult::_internal_result_str() const {
    return result_str_.Get();
  }
  inline void FtpResult::_internal_set_result_str(const std::string& value) {
    
    result_str_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, value, GetArenaForAllocation());
  }
  inline std::string* FtpResult::_internal_mutable_result_str() {
    
    return result_str_.Mutable(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, GetArenaForAllocation());
  }
  inline std::string* FtpResult::release_result_str() {
    // @@protoc_insertion_point(field_release:mavsdk.rpc.ftp.FtpResult.result_str)
    return result_str_.Release(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArenaForAllocation());
  }
  inline void FtpResult::set_allocated_result_str(std::string* result_str) {
    if (result_str != nullptr) {
      
    } else {
      
    }
    result_str_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), result_str,
        GetArenaForAllocation());
    // @@protoc_insertion_point(field_set_allocated:mavsdk.rpc.ftp.FtpResult.result_str)
  }
  
  #ifdef __GNUC__
    #pragma GCC diagnostic pop
  #endif  // __GNUC__
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  // -------------------------------------------------------------------
  
  
  // @@protoc_insertion_point(namespace_scope)
  
  }  // namespace ftp
  }  // namespace rpc
  }  // namespace mavsdk
  
  PROTOBUF_NAMESPACE_OPEN
  
  template <> struct is_proto_enum< ::mavsdk::rpc::ftp::FtpResult_Result> : ::std::true_type {};
  template <>
  inline const EnumDescriptor* GetEnumDescriptor< ::mavsdk::rpc::ftp::FtpResult_Result>() {
    return ::mavsdk::rpc::ftp::FtpResult_Result_descriptor();
  }
  
  PROTOBUF_NAMESPACE_CLOSE
  
  // @@protoc_insertion_point(global_scope)
  
  #include <google/protobuf/port_undef.inc>
  #endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_ftp_2fftp_2eproto
  