// Copyright © 2025 Stephane Capponi and individual contributors. All Rights Reserved.

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ueagents_envs/communicator_objects/training_analytics.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto_2epb_2eh

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

#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION < 4023000
#error "This file was generated by a newer version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please update"
#error "your headers."
#endif  // PROTOBUF_VERSION

#if 4023004 < PROTOBUF_MIN_PROTOC_VERSION
#error "This file was generated by an older version of protoc which is"
#error "incompatible with your Protocol Buffer headers. Please"
#error "regenerate this file with a newer version of protoc."
#endif  // PROTOBUF_MIN_PROTOC_VERSION
#include "google/protobuf/port_undef.inc"
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/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/unknown_field_set.h"
// @@protoc_insertion_point(includes)

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

#define PROTOBUF_INTERNAL_EXPORT_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto

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

// Internal implementation detail -- do not use these members.
struct TableStruct_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto {
  static const ::uint32_t offsets[];
};
extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable
    descriptor_table_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto;
namespace communicator_objects {
class TrainingBehaviorInitialized;
struct TrainingBehaviorInitializedDefaultTypeInternal;
extern TrainingBehaviorInitializedDefaultTypeInternal _TrainingBehaviorInitialized_default_instance_;
class TrainingEnvironmentInitialized;
struct TrainingEnvironmentInitializedDefaultTypeInternal;
extern TrainingEnvironmentInitializedDefaultTypeInternal _TrainingEnvironmentInitialized_default_instance_;
}  // namespace communicator_objects
PROTOBUF_NAMESPACE_OPEN
template <>
::communicator_objects::TrainingBehaviorInitialized* Arena::CreateMaybeMessage<::communicator_objects::TrainingBehaviorInitialized>(Arena*);
template <>
::communicator_objects::TrainingEnvironmentInitialized* Arena::CreateMaybeMessage<::communicator_objects::TrainingEnvironmentInitialized>(Arena*);
PROTOBUF_NAMESPACE_CLOSE

namespace communicator_objects {

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


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

class TrainingEnvironmentInitialized final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:communicator_objects.TrainingEnvironmentInitialized) */ {
 public:
  inline TrainingEnvironmentInitialized() : TrainingEnvironmentInitialized(nullptr) {}
  ~TrainingEnvironmentInitialized() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR TrainingEnvironmentInitialized(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  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 TrainingEnvironmentInitialized& default_instance() {
    return *internal_default_instance();
  }
  static inline const TrainingEnvironmentInitialized* internal_default_instance() {
    return reinterpret_cast<const TrainingEnvironmentInitialized*>(
               &_TrainingEnvironmentInitialized_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

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

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

  TrainingEnvironmentInitialized* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<TrainingEnvironmentInitialized>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const TrainingEnvironmentInitialized& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const TrainingEnvironmentInitialized& from) {
    TrainingEnvironmentInitialized::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  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;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "communicator_objects.TrainingEnvironmentInitialized";
  }
  protected:
  explicit TrainingEnvironmentInitialized(::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 {
    kMlagentsVersionFieldNumber = 1,
    kMlagentsEnvsVersionFieldNumber = 2,
    kPythonVersionFieldNumber = 3,
    kTorchVersionFieldNumber = 4,
    kTorchDeviceTypeFieldNumber = 5,
    kRunOptionsFieldNumber = 8,
    kNumEnvsFieldNumber = 6,
    kNumEnvironmentParametersFieldNumber = 7,
  };
  // string mlagents_version = 1;
  void clear_mlagents_version() ;
  const std::string& mlagents_version() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_mlagents_version(Arg_&& arg, Args_... args);
  std::string* mutable_mlagents_version();
  PROTOBUF_NODISCARD std::string* release_mlagents_version();
  void set_allocated_mlagents_version(std::string* ptr);

  private:
  const std::string& _internal_mlagents_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_mlagents_version(
      const std::string& value);
  std::string* _internal_mutable_mlagents_version();

  public:
  // string ueagents_envs_version = 2;
  void clear_ueagents_envs_version() ;
  const std::string& ueagents_envs_version() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_ueagents_envs_version(Arg_&& arg, Args_... args);
  std::string* mutable_ueagents_envs_version();
  PROTOBUF_NODISCARD std::string* release_ueagents_envs_version();
  void set_allocated_ueagents_envs_version(std::string* ptr);

  private:
  const std::string& _internal_ueagents_envs_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_ueagents_envs_version(
      const std::string& value);
  std::string* _internal_mutable_ueagents_envs_version();

  public:
  // string python_version = 3;
  void clear_python_version() ;
  const std::string& python_version() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_python_version(Arg_&& arg, Args_... args);
  std::string* mutable_python_version();
  PROTOBUF_NODISCARD std::string* release_python_version();
  void set_allocated_python_version(std::string* ptr);

  private:
  const std::string& _internal_python_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_python_version(
      const std::string& value);
  std::string* _internal_mutable_python_version();

  public:
  // string torch_version = 4;
  void clear_torch_version() ;
  const std::string& torch_version() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_torch_version(Arg_&& arg, Args_... args);
  std::string* mutable_torch_version();
  PROTOBUF_NODISCARD std::string* release_torch_version();
  void set_allocated_torch_version(std::string* ptr);

  private:
  const std::string& _internal_torch_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_torch_version(
      const std::string& value);
  std::string* _internal_mutable_torch_version();

  public:
  // string torch_device_type = 5;
  void clear_torch_device_type() ;
  const std::string& torch_device_type() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_torch_device_type(Arg_&& arg, Args_... args);
  std::string* mutable_torch_device_type();
  PROTOBUF_NODISCARD std::string* release_torch_device_type();
  void set_allocated_torch_device_type(std::string* ptr);

  private:
  const std::string& _internal_torch_device_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_torch_device_type(
      const std::string& value);
  std::string* _internal_mutable_torch_device_type();

  public:
  // string run_options = 8;
  void clear_run_options() ;
  const std::string& run_options() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_run_options(Arg_&& arg, Args_... args);
  std::string* mutable_run_options();
  PROTOBUF_NODISCARD std::string* release_run_options();
  void set_allocated_run_options(std::string* ptr);

  private:
  const std::string& _internal_run_options() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_run_options(
      const std::string& value);
  std::string* _internal_mutable_run_options();

  public:
  // int32 num_envs = 6;
  void clear_num_envs() ;
  ::int32_t num_envs() const;
  void set_num_envs(::int32_t value);

  private:
  ::int32_t _internal_num_envs() const;
  void _internal_set_num_envs(::int32_t value);

  public:
  // int32 num_environment_parameters = 7;
  void clear_num_environment_parameters() ;
  ::int32_t num_environment_parameters() const;
  void set_num_environment_parameters(::int32_t value);

  private:
  ::int32_t _internal_num_environment_parameters() const;
  void _internal_set_num_environment_parameters(::int32_t value);

  public:
  // @@protoc_insertion_point(class_scope:communicator_objects.TrainingEnvironmentInitialized)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr mlagents_version_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ueagents_envs_version_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr python_version_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr torch_version_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr torch_device_type_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr run_options_;
    ::int32_t num_envs_;
    ::int32_t num_environment_parameters_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto;
};// -------------------------------------------------------------------

class TrainingBehaviorInitialized final :
    public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:communicator_objects.TrainingBehaviorInitialized) */ {
 public:
  inline TrainingBehaviorInitialized() : TrainingBehaviorInitialized(nullptr) {}
  ~TrainingBehaviorInitialized() override;
  template<typename = void>
  explicit PROTOBUF_CONSTEXPR TrainingBehaviorInitialized(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

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

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

  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
    return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
  }
  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
  }

  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 TrainingBehaviorInitialized& default_instance() {
    return *internal_default_instance();
  }
  static inline const TrainingBehaviorInitialized* internal_default_instance() {
    return reinterpret_cast<const TrainingBehaviorInitialized*>(
               &_TrainingBehaviorInitialized_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

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

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

  TrainingBehaviorInitialized* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<TrainingBehaviorInitialized>(arena);
  }
  using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
  void CopyFrom(const TrainingBehaviorInitialized& from);
  using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
  void MergeFrom( const TrainingBehaviorInitialized& from) {
    TrainingBehaviorInitialized::MergeImpl(*this, from);
  }
  private:
  static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg);
  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;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

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

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() {
    return "communicator_objects.TrainingBehaviorInitialized";
  }
  protected:
  explicit TrainingBehaviorInitialized(::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 {
    kBehaviorNameFieldNumber = 1,
    kTrainerTypeFieldNumber = 2,
    kVisualEncoderFieldNumber = 9,
    kConfigFieldNumber = 15,
    kExtrinsicRewardEnabledFieldNumber = 3,
    kGailRewardEnabledFieldNumber = 4,
    kCuriosityRewardEnabledFieldNumber = 5,
    kRndRewardEnabledFieldNumber = 6,
    kNumNetworkLayersFieldNumber = 10,
    kBehavioralCloningEnabledFieldNumber = 7,
    kRecurrentEnabledFieldNumber = 8,
    kTrainerThreadedFieldNumber = 12,
    kSelfPlayEnabledFieldNumber = 13,
    kNumNetworkHiddenUnitsFieldNumber = 11,
    kCurriculumEnabledFieldNumber = 14,
  };
  // string behavior_name = 1;
  void clear_behavior_name() ;
  const std::string& behavior_name() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_behavior_name(Arg_&& arg, Args_... args);
  std::string* mutable_behavior_name();
  PROTOBUF_NODISCARD std::string* release_behavior_name();
  void set_allocated_behavior_name(std::string* ptr);

  private:
  const std::string& _internal_behavior_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_behavior_name(
      const std::string& value);
  std::string* _internal_mutable_behavior_name();

  public:
  // string trainer_type = 2;
  void clear_trainer_type() ;
  const std::string& trainer_type() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_trainer_type(Arg_&& arg, Args_... args);
  std::string* mutable_trainer_type();
  PROTOBUF_NODISCARD std::string* release_trainer_type();
  void set_allocated_trainer_type(std::string* ptr);

  private:
  const std::string& _internal_trainer_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_trainer_type(
      const std::string& value);
  std::string* _internal_mutable_trainer_type();

  public:
  // string visual_encoder = 9;
  void clear_visual_encoder() ;
  const std::string& visual_encoder() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_visual_encoder(Arg_&& arg, Args_... args);
  std::string* mutable_visual_encoder();
  PROTOBUF_NODISCARD std::string* release_visual_encoder();
  void set_allocated_visual_encoder(std::string* ptr);

  private:
  const std::string& _internal_visual_encoder() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_visual_encoder(
      const std::string& value);
  std::string* _internal_mutable_visual_encoder();

  public:
  // string config = 15;
  void clear_config() ;
  const std::string& config() const;




  template <typename Arg_ = const std::string&, typename... Args_>
  void set_config(Arg_&& arg, Args_... args);
  std::string* mutable_config();
  PROTOBUF_NODISCARD std::string* release_config();
  void set_allocated_config(std::string* ptr);

  private:
  const std::string& _internal_config() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_config(
      const std::string& value);
  std::string* _internal_mutable_config();

  public:
  // bool extrinsic_reward_enabled = 3;
  void clear_extrinsic_reward_enabled() ;
  bool extrinsic_reward_enabled() const;
  void set_extrinsic_reward_enabled(bool value);

  private:
  bool _internal_extrinsic_reward_enabled() const;
  void _internal_set_extrinsic_reward_enabled(bool value);

  public:
  // bool gail_reward_enabled = 4;
  void clear_gail_reward_enabled() ;
  bool gail_reward_enabled() const;
  void set_gail_reward_enabled(bool value);

  private:
  bool _internal_gail_reward_enabled() const;
  void _internal_set_gail_reward_enabled(bool value);

  public:
  // bool curiosity_reward_enabled = 5;
  void clear_curiosity_reward_enabled() ;
  bool curiosity_reward_enabled() const;
  void set_curiosity_reward_enabled(bool value);

  private:
  bool _internal_curiosity_reward_enabled() const;
  void _internal_set_curiosity_reward_enabled(bool value);

  public:
  // bool rnd_reward_enabled = 6;
  void clear_rnd_reward_enabled() ;
  bool rnd_reward_enabled() const;
  void set_rnd_reward_enabled(bool value);

  private:
  bool _internal_rnd_reward_enabled() const;
  void _internal_set_rnd_reward_enabled(bool value);

  public:
  // int32 num_network_layers = 10;
  void clear_num_network_layers() ;
  ::int32_t num_network_layers() const;
  void set_num_network_layers(::int32_t value);

  private:
  ::int32_t _internal_num_network_layers() const;
  void _internal_set_num_network_layers(::int32_t value);

  public:
  // bool behavioral_cloning_enabled = 7;
  void clear_behavioral_cloning_enabled() ;
  bool behavioral_cloning_enabled() const;
  void set_behavioral_cloning_enabled(bool value);

  private:
  bool _internal_behavioral_cloning_enabled() const;
  void _internal_set_behavioral_cloning_enabled(bool value);

  public:
  // bool recurrent_enabled = 8;
  void clear_recurrent_enabled() ;
  bool recurrent_enabled() const;
  void set_recurrent_enabled(bool value);

  private:
  bool _internal_recurrent_enabled() const;
  void _internal_set_recurrent_enabled(bool value);

  public:
  // bool trainer_threaded = 12;
  void clear_trainer_threaded() ;
  bool trainer_threaded() const;
  void set_trainer_threaded(bool value);

  private:
  bool _internal_trainer_threaded() const;
  void _internal_set_trainer_threaded(bool value);

  public:
  // bool self_play_enabled = 13;
  void clear_self_play_enabled() ;
  bool self_play_enabled() const;
  void set_self_play_enabled(bool value);

  private:
  bool _internal_self_play_enabled() const;
  void _internal_set_self_play_enabled(bool value);

  public:
  // int32 num_network_hidden_units = 11;
  void clear_num_network_hidden_units() ;
  ::int32_t num_network_hidden_units() const;
  void set_num_network_hidden_units(::int32_t value);

  private:
  ::int32_t _internal_num_network_hidden_units() const;
  void _internal_set_num_network_hidden_units(::int32_t value);

  public:
  // bool curriculum_enabled = 14;
  void clear_curriculum_enabled() ;
  bool curriculum_enabled() const;
  void set_curriculum_enabled(bool value);

  private:
  bool _internal_curriculum_enabled() const;
  void _internal_set_curriculum_enabled(bool value);

  public:
  // @@protoc_insertion_point(class_scope:communicator_objects.TrainingBehaviorInitialized)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr behavior_name_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr trainer_type_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr visual_encoder_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr config_;
    bool extrinsic_reward_enabled_;
    bool gail_reward_enabled_;
    bool curiosity_reward_enabled_;
    bool rnd_reward_enabled_;
    ::int32_t num_network_layers_;
    bool behavioral_cloning_enabled_;
    bool recurrent_enabled_;
    bool trainer_threaded_;
    bool self_play_enabled_;
    ::int32_t num_network_hidden_units_;
    bool curriculum_enabled_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto;
};

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




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


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

// TrainingEnvironmentInitialized

// string mlagents_version = 1;
inline void TrainingEnvironmentInitialized::clear_mlagents_version() {
  _impl_.mlagents_version_.ClearToEmpty();
}
inline const std::string& TrainingEnvironmentInitialized::mlagents_version() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.mlagents_version)
  return _internal_mlagents_version();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingEnvironmentInitialized::set_mlagents_version(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.mlagents_version_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.mlagents_version)
}
inline std::string* TrainingEnvironmentInitialized::mutable_mlagents_version() {
  std::string* _s = _internal_mutable_mlagents_version();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingEnvironmentInitialized.mlagents_version)
  return _s;
}
inline const std::string& TrainingEnvironmentInitialized::_internal_mlagents_version() const {
  return _impl_.mlagents_version_.Get();
}
inline void TrainingEnvironmentInitialized::_internal_set_mlagents_version(const std::string& value) {
  ;


  _impl_.mlagents_version_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::_internal_mutable_mlagents_version() {
  ;
  return _impl_.mlagents_version_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::release_mlagents_version() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingEnvironmentInitialized.mlagents_version)
  return _impl_.mlagents_version_.Release();
}
inline void TrainingEnvironmentInitialized::set_allocated_mlagents_version(std::string* value) {
  _impl_.mlagents_version_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.mlagents_version_.IsDefault()) {
          _impl_.mlagents_version_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingEnvironmentInitialized.mlagents_version)
}

// string ueagents_envs_version = 2;
inline void TrainingEnvironmentInitialized::clear_ueagents_envs_version() {
  _impl_.ueagents_envs_version_.ClearToEmpty();
}
inline const std::string& TrainingEnvironmentInitialized::ueagents_envs_version() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.ueagents_envs_version)
  return _internal_ueagents_envs_version();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingEnvironmentInitialized::set_ueagents_envs_version(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.ueagents_envs_version_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.ueagents_envs_version)
}
inline std::string* TrainingEnvironmentInitialized::mutable_ueagents_envs_version() {
  std::string* _s = _internal_mutable_ueagents_envs_version();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingEnvironmentInitialized.ueagents_envs_version)
  return _s;
}
inline const std::string& TrainingEnvironmentInitialized::_internal_ueagents_envs_version() const {
  return _impl_.ueagents_envs_version_.Get();
}
inline void TrainingEnvironmentInitialized::_internal_set_ueagents_envs_version(const std::string& value) {
  ;


  _impl_.ueagents_envs_version_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::_internal_mutable_ueagents_envs_version() {
  ;
  return _impl_.ueagents_envs_version_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::release_ueagents_envs_version() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingEnvironmentInitialized.ueagents_envs_version)
  return _impl_.ueagents_envs_version_.Release();
}
inline void TrainingEnvironmentInitialized::set_allocated_ueagents_envs_version(std::string* value) {
  _impl_.ueagents_envs_version_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.ueagents_envs_version_.IsDefault()) {
          _impl_.ueagents_envs_version_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingEnvironmentInitialized.ueagents_envs_version)
}

// string python_version = 3;
inline void TrainingEnvironmentInitialized::clear_python_version() {
  _impl_.python_version_.ClearToEmpty();
}
inline const std::string& TrainingEnvironmentInitialized::python_version() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.python_version)
  return _internal_python_version();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingEnvironmentInitialized::set_python_version(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.python_version_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.python_version)
}
inline std::string* TrainingEnvironmentInitialized::mutable_python_version() {
  std::string* _s = _internal_mutable_python_version();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingEnvironmentInitialized.python_version)
  return _s;
}
inline const std::string& TrainingEnvironmentInitialized::_internal_python_version() const {
  return _impl_.python_version_.Get();
}
inline void TrainingEnvironmentInitialized::_internal_set_python_version(const std::string& value) {
  ;


  _impl_.python_version_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::_internal_mutable_python_version() {
  ;
  return _impl_.python_version_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::release_python_version() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingEnvironmentInitialized.python_version)
  return _impl_.python_version_.Release();
}
inline void TrainingEnvironmentInitialized::set_allocated_python_version(std::string* value) {
  _impl_.python_version_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.python_version_.IsDefault()) {
          _impl_.python_version_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingEnvironmentInitialized.python_version)
}

// string torch_version = 4;
inline void TrainingEnvironmentInitialized::clear_torch_version() {
  _impl_.torch_version_.ClearToEmpty();
}
inline const std::string& TrainingEnvironmentInitialized::torch_version() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.torch_version)
  return _internal_torch_version();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingEnvironmentInitialized::set_torch_version(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.torch_version_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.torch_version)
}
inline std::string* TrainingEnvironmentInitialized::mutable_torch_version() {
  std::string* _s = _internal_mutable_torch_version();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingEnvironmentInitialized.torch_version)
  return _s;
}
inline const std::string& TrainingEnvironmentInitialized::_internal_torch_version() const {
  return _impl_.torch_version_.Get();
}
inline void TrainingEnvironmentInitialized::_internal_set_torch_version(const std::string& value) {
  ;


  _impl_.torch_version_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::_internal_mutable_torch_version() {
  ;
  return _impl_.torch_version_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::release_torch_version() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingEnvironmentInitialized.torch_version)
  return _impl_.torch_version_.Release();
}
inline void TrainingEnvironmentInitialized::set_allocated_torch_version(std::string* value) {
  _impl_.torch_version_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.torch_version_.IsDefault()) {
          _impl_.torch_version_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingEnvironmentInitialized.torch_version)
}

// string torch_device_type = 5;
inline void TrainingEnvironmentInitialized::clear_torch_device_type() {
  _impl_.torch_device_type_.ClearToEmpty();
}
inline const std::string& TrainingEnvironmentInitialized::torch_device_type() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.torch_device_type)
  return _internal_torch_device_type();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingEnvironmentInitialized::set_torch_device_type(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.torch_device_type_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.torch_device_type)
}
inline std::string* TrainingEnvironmentInitialized::mutable_torch_device_type() {
  std::string* _s = _internal_mutable_torch_device_type();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingEnvironmentInitialized.torch_device_type)
  return _s;
}
inline const std::string& TrainingEnvironmentInitialized::_internal_torch_device_type() const {
  return _impl_.torch_device_type_.Get();
}
inline void TrainingEnvironmentInitialized::_internal_set_torch_device_type(const std::string& value) {
  ;


  _impl_.torch_device_type_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::_internal_mutable_torch_device_type() {
  ;
  return _impl_.torch_device_type_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::release_torch_device_type() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingEnvironmentInitialized.torch_device_type)
  return _impl_.torch_device_type_.Release();
}
inline void TrainingEnvironmentInitialized::set_allocated_torch_device_type(std::string* value) {
  _impl_.torch_device_type_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.torch_device_type_.IsDefault()) {
          _impl_.torch_device_type_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingEnvironmentInitialized.torch_device_type)
}

// int32 num_envs = 6;
inline void TrainingEnvironmentInitialized::clear_num_envs() {
  _impl_.num_envs_ = 0;
}
inline ::int32_t TrainingEnvironmentInitialized::num_envs() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.num_envs)
  return _internal_num_envs();
}
inline void TrainingEnvironmentInitialized::set_num_envs(::int32_t value) {
  _internal_set_num_envs(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.num_envs)
}
inline ::int32_t TrainingEnvironmentInitialized::_internal_num_envs() const {
  return _impl_.num_envs_;
}
inline void TrainingEnvironmentInitialized::_internal_set_num_envs(::int32_t value) {
  ;
  _impl_.num_envs_ = value;
}

// int32 num_environment_parameters = 7;
inline void TrainingEnvironmentInitialized::clear_num_environment_parameters() {
  _impl_.num_environment_parameters_ = 0;
}
inline ::int32_t TrainingEnvironmentInitialized::num_environment_parameters() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.num_environment_parameters)
  return _internal_num_environment_parameters();
}
inline void TrainingEnvironmentInitialized::set_num_environment_parameters(::int32_t value) {
  _internal_set_num_environment_parameters(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.num_environment_parameters)
}
inline ::int32_t TrainingEnvironmentInitialized::_internal_num_environment_parameters() const {
  return _impl_.num_environment_parameters_;
}
inline void TrainingEnvironmentInitialized::_internal_set_num_environment_parameters(::int32_t value) {
  ;
  _impl_.num_environment_parameters_ = value;
}

// string run_options = 8;
inline void TrainingEnvironmentInitialized::clear_run_options() {
  _impl_.run_options_.ClearToEmpty();
}
inline const std::string& TrainingEnvironmentInitialized::run_options() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingEnvironmentInitialized.run_options)
  return _internal_run_options();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingEnvironmentInitialized::set_run_options(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.run_options_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingEnvironmentInitialized.run_options)
}
inline std::string* TrainingEnvironmentInitialized::mutable_run_options() {
  std::string* _s = _internal_mutable_run_options();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingEnvironmentInitialized.run_options)
  return _s;
}
inline const std::string& TrainingEnvironmentInitialized::_internal_run_options() const {
  return _impl_.run_options_.Get();
}
inline void TrainingEnvironmentInitialized::_internal_set_run_options(const std::string& value) {
  ;


  _impl_.run_options_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::_internal_mutable_run_options() {
  ;
  return _impl_.run_options_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingEnvironmentInitialized::release_run_options() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingEnvironmentInitialized.run_options)
  return _impl_.run_options_.Release();
}
inline void TrainingEnvironmentInitialized::set_allocated_run_options(std::string* value) {
  _impl_.run_options_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.run_options_.IsDefault()) {
          _impl_.run_options_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingEnvironmentInitialized.run_options)
}

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

// TrainingBehaviorInitialized

// string behavior_name = 1;
inline void TrainingBehaviorInitialized::clear_behavior_name() {
  _impl_.behavior_name_.ClearToEmpty();
}
inline const std::string& TrainingBehaviorInitialized::behavior_name() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.behavior_name)
  return _internal_behavior_name();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingBehaviorInitialized::set_behavior_name(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.behavior_name_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.behavior_name)
}
inline std::string* TrainingBehaviorInitialized::mutable_behavior_name() {
  std::string* _s = _internal_mutable_behavior_name();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingBehaviorInitialized.behavior_name)
  return _s;
}
inline const std::string& TrainingBehaviorInitialized::_internal_behavior_name() const {
  return _impl_.behavior_name_.Get();
}
inline void TrainingBehaviorInitialized::_internal_set_behavior_name(const std::string& value) {
  ;


  _impl_.behavior_name_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::_internal_mutable_behavior_name() {
  ;
  return _impl_.behavior_name_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::release_behavior_name() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingBehaviorInitialized.behavior_name)
  return _impl_.behavior_name_.Release();
}
inline void TrainingBehaviorInitialized::set_allocated_behavior_name(std::string* value) {
  _impl_.behavior_name_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.behavior_name_.IsDefault()) {
          _impl_.behavior_name_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingBehaviorInitialized.behavior_name)
}

// string trainer_type = 2;
inline void TrainingBehaviorInitialized::clear_trainer_type() {
  _impl_.trainer_type_.ClearToEmpty();
}
inline const std::string& TrainingBehaviorInitialized::trainer_type() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.trainer_type)
  return _internal_trainer_type();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingBehaviorInitialized::set_trainer_type(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.trainer_type_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.trainer_type)
}
inline std::string* TrainingBehaviorInitialized::mutable_trainer_type() {
  std::string* _s = _internal_mutable_trainer_type();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingBehaviorInitialized.trainer_type)
  return _s;
}
inline const std::string& TrainingBehaviorInitialized::_internal_trainer_type() const {
  return _impl_.trainer_type_.Get();
}
inline void TrainingBehaviorInitialized::_internal_set_trainer_type(const std::string& value) {
  ;


  _impl_.trainer_type_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::_internal_mutable_trainer_type() {
  ;
  return _impl_.trainer_type_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::release_trainer_type() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingBehaviorInitialized.trainer_type)
  return _impl_.trainer_type_.Release();
}
inline void TrainingBehaviorInitialized::set_allocated_trainer_type(std::string* value) {
  _impl_.trainer_type_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.trainer_type_.IsDefault()) {
          _impl_.trainer_type_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingBehaviorInitialized.trainer_type)
}

// bool extrinsic_reward_enabled = 3;
inline void TrainingBehaviorInitialized::clear_extrinsic_reward_enabled() {
  _impl_.extrinsic_reward_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::extrinsic_reward_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.extrinsic_reward_enabled)
  return _internal_extrinsic_reward_enabled();
}
inline void TrainingBehaviorInitialized::set_extrinsic_reward_enabled(bool value) {
  _internal_set_extrinsic_reward_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.extrinsic_reward_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_extrinsic_reward_enabled() const {
  return _impl_.extrinsic_reward_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_extrinsic_reward_enabled(bool value) {
  ;
  _impl_.extrinsic_reward_enabled_ = value;
}

// bool gail_reward_enabled = 4;
inline void TrainingBehaviorInitialized::clear_gail_reward_enabled() {
  _impl_.gail_reward_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::gail_reward_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.gail_reward_enabled)
  return _internal_gail_reward_enabled();
}
inline void TrainingBehaviorInitialized::set_gail_reward_enabled(bool value) {
  _internal_set_gail_reward_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.gail_reward_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_gail_reward_enabled() const {
  return _impl_.gail_reward_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_gail_reward_enabled(bool value) {
  ;
  _impl_.gail_reward_enabled_ = value;
}

// bool curiosity_reward_enabled = 5;
inline void TrainingBehaviorInitialized::clear_curiosity_reward_enabled() {
  _impl_.curiosity_reward_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::curiosity_reward_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.curiosity_reward_enabled)
  return _internal_curiosity_reward_enabled();
}
inline void TrainingBehaviorInitialized::set_curiosity_reward_enabled(bool value) {
  _internal_set_curiosity_reward_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.curiosity_reward_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_curiosity_reward_enabled() const {
  return _impl_.curiosity_reward_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_curiosity_reward_enabled(bool value) {
  ;
  _impl_.curiosity_reward_enabled_ = value;
}

// bool rnd_reward_enabled = 6;
inline void TrainingBehaviorInitialized::clear_rnd_reward_enabled() {
  _impl_.rnd_reward_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::rnd_reward_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.rnd_reward_enabled)
  return _internal_rnd_reward_enabled();
}
inline void TrainingBehaviorInitialized::set_rnd_reward_enabled(bool value) {
  _internal_set_rnd_reward_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.rnd_reward_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_rnd_reward_enabled() const {
  return _impl_.rnd_reward_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_rnd_reward_enabled(bool value) {
  ;
  _impl_.rnd_reward_enabled_ = value;
}

// bool behavioral_cloning_enabled = 7;
inline void TrainingBehaviorInitialized::clear_behavioral_cloning_enabled() {
  _impl_.behavioral_cloning_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::behavioral_cloning_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.behavioral_cloning_enabled)
  return _internal_behavioral_cloning_enabled();
}
inline void TrainingBehaviorInitialized::set_behavioral_cloning_enabled(bool value) {
  _internal_set_behavioral_cloning_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.behavioral_cloning_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_behavioral_cloning_enabled() const {
  return _impl_.behavioral_cloning_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_behavioral_cloning_enabled(bool value) {
  ;
  _impl_.behavioral_cloning_enabled_ = value;
}

// bool recurrent_enabled = 8;
inline void TrainingBehaviorInitialized::clear_recurrent_enabled() {
  _impl_.recurrent_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::recurrent_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.recurrent_enabled)
  return _internal_recurrent_enabled();
}
inline void TrainingBehaviorInitialized::set_recurrent_enabled(bool value) {
  _internal_set_recurrent_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.recurrent_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_recurrent_enabled() const {
  return _impl_.recurrent_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_recurrent_enabled(bool value) {
  ;
  _impl_.recurrent_enabled_ = value;
}

// string visual_encoder = 9;
inline void TrainingBehaviorInitialized::clear_visual_encoder() {
  _impl_.visual_encoder_.ClearToEmpty();
}
inline const std::string& TrainingBehaviorInitialized::visual_encoder() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.visual_encoder)
  return _internal_visual_encoder();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingBehaviorInitialized::set_visual_encoder(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.visual_encoder_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.visual_encoder)
}
inline std::string* TrainingBehaviorInitialized::mutable_visual_encoder() {
  std::string* _s = _internal_mutable_visual_encoder();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingBehaviorInitialized.visual_encoder)
  return _s;
}
inline const std::string& TrainingBehaviorInitialized::_internal_visual_encoder() const {
  return _impl_.visual_encoder_.Get();
}
inline void TrainingBehaviorInitialized::_internal_set_visual_encoder(const std::string& value) {
  ;


  _impl_.visual_encoder_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::_internal_mutable_visual_encoder() {
  ;
  return _impl_.visual_encoder_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::release_visual_encoder() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingBehaviorInitialized.visual_encoder)
  return _impl_.visual_encoder_.Release();
}
inline void TrainingBehaviorInitialized::set_allocated_visual_encoder(std::string* value) {
  _impl_.visual_encoder_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.visual_encoder_.IsDefault()) {
          _impl_.visual_encoder_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingBehaviorInitialized.visual_encoder)
}

// int32 num_network_layers = 10;
inline void TrainingBehaviorInitialized::clear_num_network_layers() {
  _impl_.num_network_layers_ = 0;
}
inline ::int32_t TrainingBehaviorInitialized::num_network_layers() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.num_network_layers)
  return _internal_num_network_layers();
}
inline void TrainingBehaviorInitialized::set_num_network_layers(::int32_t value) {
  _internal_set_num_network_layers(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.num_network_layers)
}
inline ::int32_t TrainingBehaviorInitialized::_internal_num_network_layers() const {
  return _impl_.num_network_layers_;
}
inline void TrainingBehaviorInitialized::_internal_set_num_network_layers(::int32_t value) {
  ;
  _impl_.num_network_layers_ = value;
}

// int32 num_network_hidden_units = 11;
inline void TrainingBehaviorInitialized::clear_num_network_hidden_units() {
  _impl_.num_network_hidden_units_ = 0;
}
inline ::int32_t TrainingBehaviorInitialized::num_network_hidden_units() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.num_network_hidden_units)
  return _internal_num_network_hidden_units();
}
inline void TrainingBehaviorInitialized::set_num_network_hidden_units(::int32_t value) {
  _internal_set_num_network_hidden_units(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.num_network_hidden_units)
}
inline ::int32_t TrainingBehaviorInitialized::_internal_num_network_hidden_units() const {
  return _impl_.num_network_hidden_units_;
}
inline void TrainingBehaviorInitialized::_internal_set_num_network_hidden_units(::int32_t value) {
  ;
  _impl_.num_network_hidden_units_ = value;
}

// bool trainer_threaded = 12;
inline void TrainingBehaviorInitialized::clear_trainer_threaded() {
  _impl_.trainer_threaded_ = false;
}
inline bool TrainingBehaviorInitialized::trainer_threaded() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.trainer_threaded)
  return _internal_trainer_threaded();
}
inline void TrainingBehaviorInitialized::set_trainer_threaded(bool value) {
  _internal_set_trainer_threaded(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.trainer_threaded)
}
inline bool TrainingBehaviorInitialized::_internal_trainer_threaded() const {
  return _impl_.trainer_threaded_;
}
inline void TrainingBehaviorInitialized::_internal_set_trainer_threaded(bool value) {
  ;
  _impl_.trainer_threaded_ = value;
}

// bool self_play_enabled = 13;
inline void TrainingBehaviorInitialized::clear_self_play_enabled() {
  _impl_.self_play_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::self_play_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.self_play_enabled)
  return _internal_self_play_enabled();
}
inline void TrainingBehaviorInitialized::set_self_play_enabled(bool value) {
  _internal_set_self_play_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.self_play_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_self_play_enabled() const {
  return _impl_.self_play_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_self_play_enabled(bool value) {
  ;
  _impl_.self_play_enabled_ = value;
}

// bool curriculum_enabled = 14;
inline void TrainingBehaviorInitialized::clear_curriculum_enabled() {
  _impl_.curriculum_enabled_ = false;
}
inline bool TrainingBehaviorInitialized::curriculum_enabled() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.curriculum_enabled)
  return _internal_curriculum_enabled();
}
inline void TrainingBehaviorInitialized::set_curriculum_enabled(bool value) {
  _internal_set_curriculum_enabled(value);
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.curriculum_enabled)
}
inline bool TrainingBehaviorInitialized::_internal_curriculum_enabled() const {
  return _impl_.curriculum_enabled_;
}
inline void TrainingBehaviorInitialized::_internal_set_curriculum_enabled(bool value) {
  ;
  _impl_.curriculum_enabled_ = value;
}

// string config = 15;
inline void TrainingBehaviorInitialized::clear_config() {
  _impl_.config_.ClearToEmpty();
}
inline const std::string& TrainingBehaviorInitialized::config() const {
  // @@protoc_insertion_point(field_get:communicator_objects.TrainingBehaviorInitialized.config)
  return _internal_config();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void TrainingBehaviorInitialized::set_config(Arg_&& arg,
                                                     Args_... args) {
  ;
  _impl_.config_.Set(static_cast<Arg_&&>(arg), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:communicator_objects.TrainingBehaviorInitialized.config)
}
inline std::string* TrainingBehaviorInitialized::mutable_config() {
  std::string* _s = _internal_mutable_config();
  // @@protoc_insertion_point(field_mutable:communicator_objects.TrainingBehaviorInitialized.config)
  return _s;
}
inline const std::string& TrainingBehaviorInitialized::_internal_config() const {
  return _impl_.config_.Get();
}
inline void TrainingBehaviorInitialized::_internal_set_config(const std::string& value) {
  ;


  _impl_.config_.Set(value, GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::_internal_mutable_config() {
  ;
  return _impl_.config_.Mutable( GetArenaForAllocation());
}
inline std::string* TrainingBehaviorInitialized::release_config() {
  // @@protoc_insertion_point(field_release:communicator_objects.TrainingBehaviorInitialized.config)
  return _impl_.config_.Release();
}
inline void TrainingBehaviorInitialized::set_allocated_config(std::string* value) {
  _impl_.config_.SetAllocated(value, GetArenaForAllocation());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.config_.IsDefault()) {
          _impl_.config_.Set("", GetArenaForAllocation());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:communicator_objects.TrainingBehaviorInitialized.config)
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace communicator_objects


// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_ueagents_5fenvs_2fcommunicator_5fobjects_2ftraining_5fanalytics_2eproto_2epb_2eh
