text: #ifndef _CISCO_IOS_XR_MPLS_LDP_OPER_4_
  #define _CISCO_IOS_XR_MPLS_LDP_OPER_4_
  
  #include <memory>
  #include <vector>
  #include <string>
  #include <ydk/types.hpp>
  #include <ydk/errors.hpp>
  
  #include "Cisco_IOS_XR_mpls_ldp_oper_0.hpp"
  #include "Cisco_IOS_XR_mpls_ldp_oper_2.hpp"
  #include "Cisco_IOS_XR_mpls_ldp_oper_3.hpp"
  
  namespace cisco_ios_xr {
  namespace Cisco_IOS_XR_mpls_ldp_oper {
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii : public ydk::Entity
  {
      public:
          Saii();
          ~Saii();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf aii_type; //type: L2vpnLdpPwAii
          class Aii1; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii1
          class Aii2; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii2
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii1> aii1;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii2> aii2;
          
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii1 : public ydk::Entity
  {
      public:
          Aii1();
          ~Aii1();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf local_id; //type: string
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii1
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii2 : public ydk::Entity
  {
      public:
          Aii2();
          ~Aii2();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf gobal_id; //type: uint32
          ydk::YLeaf prefix; //type: uint32
          ydk::YLeaf ac_id; //type: uint32
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Saii::Aii2
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii : public ydk::Entity
  {
      public:
          Taii();
          ~Taii();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf aii_type; //type: L2vpnLdpPwAii
          class Aii1; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii1
          class Aii2; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii2
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii1> aii1;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii2> aii2;
          
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii1 : public ydk::Entity
  {
      public:
          Aii1();
          ~Aii1();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf local_id; //type: string
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii1
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii2 : public ydk::Entity
  {
      public:
          Aii2();
          ~Aii2();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf gobal_id; //type: uint32
          ydk::YLeaf prefix; //type: uint32
          ydk::YLeaf ac_id; //type: uint32
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec129::Taii::Aii2
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130 : public ydk::Entity
  {
      public:
          Fec130();
          ~Fec130();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          class Agi; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi
          class Saii; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi> agi;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii> saii;
          
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi : public ydk::Entity
  {
      public:
          Agi();
          ~Agi();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf agi_type; //type: L2vpnLdpPwAgi
          class Agi1; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi::Agi1
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi::Agi1> agi1;
          
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi::Agi1 : public ydk::Entity
  {
      public:
          Agi1();
          ~Agi1();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf rd; //type: uint64
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Agi::Agi1
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii : public ydk::Entity
  {
      public:
          Saii();
          ~Saii();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf aii_type; //type: L2vpnLdpPwAii
          class Aii1; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii1
          class Aii2; //type: MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii2
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii1> aii1;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii2> aii2;
          
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii1 : public ydk::Entity
  {
      public:
          Aii1();
          ~Aii1();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf local_id; //type: string
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii1
  
  
  class MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii2 : public ydk::Entity
  {
      public:
          Aii2();
          ~Aii2();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf gobal_id; //type: uint32
          ydk::YLeaf prefix; //type: uint32
          ydk::YLeaf ac_id; //type: uint32
  
  }; // MplsLdp::Global::Active::AtoMdbTableEntries::AtoMdbTableEntry::FecInfo::Fec130::Saii::Aii2
  
  
  class MplsLdp::Global::Active::NsrSummaryAll : public ydk::Entity
  {
      public:
          NsrSummaryAll();
          ~NsrSummaryAll();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          class Vrf; //type: MplsLdp::Global::Active::NsrSummaryAll::Vrf
          class Sessions; //type: MplsLdp::Global::Active::NsrSummaryAll::Sessions
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::NsrSummaryAll::Vrf> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::NsrSummaryAll::Sessions> sessions;
          
  }; // MplsLdp::Global::Active::NsrSummaryAll
  
  
  class MplsLdp::Global::Active::NsrSummaryAll::Vrf : public ydk::Entity
  {
      public:
          Vrf();
          ~Vrf();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::NsrSummaryAll::Vrf
  
  
  class MplsLdp::Global::Active::NsrSummaryAll::Sessions : public ydk::Entity
  {
      public:
          Sessions();
          ~Sessions();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf total; //type: uint32
          ydk::YLeaf nsr_eligible; //type: uint32
          ydk::YLeaf nsr_state_none; //type: uint32
          ydk::YLeaf nsr_state_wait; //type: uint32
          ydk::YLeaf nsr_state_ready; //type: uint32
          ydk::YLeaf nsr_state_prepare; //type: uint32
          ydk::YLeaf nsr_state_app_wait; //type: uint32
          ydk::YLeaf nsr_state_operational; //type: uint32
          ydk::YLeaf nsr_state_tcp_phase1; //type: uint32
          ydk::YLeaf nsr_state_tcp_phase2; //type: uint32
  
  }; // MplsLdp::Global::Active::NsrSummaryAll::Sessions
  
  
  class MplsLdp::Global::Active::Summary : public ydk::Entity
  {
      public:
          Summary();
          ~Summary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf number_of_vrf; //type: uint32
          ydk::YLeaf number_of_vrf_oper; //type: uint32
          ydk::YLeaf number_of_interfaces; //type: uint32
          ydk::YLeaf number_of_fwd_ref_interfaces; //type: uint32
          ydk::YLeaf number_of_autocfg_interfaces; //type: uint32
          ydk::YLeaf is_bound_with_sysdb; //type: boolean
          ydk::YLeaf is_registered_with_sysdb; //type: boolean
          ydk::YLeaf is_bound_with_rsi; //type: boolean
          ydk::YLeaf is_bound_with_interface_manager; //type: boolean
          ydk::YLeaf is_registered_with_interface_manager; //type: boolean
          ydk::YLeaf is_bound_with_ip_arm; //type: boolean
          ydk::YLeaf is_bound_with_lsd; //type: boolean
          ydk::YLeaf is_registered_with_lsd; //type: boolean
          ydk::YLeaf is_bound_with_ipv4_rib; //type: boolean
          ydk::YLeaf is_registered_with_ipv4_rib; //type: boolean
          ydk::YLeaf number_of_ipv4rib_tables; //type: uint32
          ydk::YLeaf number_of_registered_ipv4rib_tables; //type: uint32
          ydk::YLeaf is_bound_with_ipv6_rib; //type: boolean
          ydk::YLeaf is_registered_with_ipv6_rib; //type: boolean
          ydk::YLeaf number_of_ipv6rib_tables; //type: uint32
          ydk::YLeaf number_of_registered_ipv6rib_tables; //type: uint32
          ydk::YLeaf is_bound_with_atom; //type: boolean
          ydk::YLeaf is_bound_with_nsr_mate; //type: boolean
          ydk::YLeaf is_nsr_configured; //type: boolean
          ydk::YLeaf is_mldp_registered; //type: boolean
          class Common; //type: MplsLdp::Global::Active::Summary::Common
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Summary::Common> common;
          
  }; // MplsLdp::Global::Active::Summary
  
  
  class MplsLdp::Global::Active::Summary::Common : public ydk::Entity
  {
      public:
          Common();
          ~Common();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf address_families; //type: LdpAf
          ydk::YLeaf number_of_ipv4af; //type: uint32
          ydk::YLeaf number_of_ipv6af; //type: uint32
          ydk::YLeaf number_of_neighbors; //type: uint32
          ydk::YLeaf number_of_nsr_synced_neighbors; //type: uint32
          ydk::YLeaf number_of_graceful_restart_neighbors; //type: uint32
          ydk::YLeaf number_of_downstream_on_demand_neighbors; //type: uint32
          ydk::YLeaf number_of_ipv4_hello_adj; //type: uint32
          ydk::YLeaf number_of_ipv6_hello_adj; //type: uint32
          ydk::YLeaf number_of_ipv4_routes; //type: uint32
          ydk::YLeaf number_of_ipv6_routes; //type: uint32
          ydk::YLeaf number_of_ipv4_local_addresses; //type: uint32
          ydk::YLeaf number_of_ipv6_local_addresses; //type: uint32
          ydk::YLeaf number_of_ldp_interfaces; //type: uint32
          ydk::YLeaf number_of_ipv4ldp_interfaces; //type: uint32
          ydk::YLeaf number_of_ipv6ldp_interfaces; //type: uint32
          ydk::YLeaf number_of_bindings_ipv4; //type: uint32
          ydk::YLeaf number_of_bindings_ipv6; //type: uint32
          ydk::YLeaf number_of_local_bindings_ipv4; //type: uint32
          ydk::YLeaf number_of_local_bindings_ipv6; //type: uint32
          ydk::YLeaf number_of_remote_bindings_ipv4; //type: uint32
          ydk::YLeaf number_of_remote_bindings_ipv6; //type: uint32
  
  }; // MplsLdp::Global::Active::Summary::Common
  
  
  class MplsLdp::Global::Active::Vrfs : public ydk::Entity
  {
      public:
          Vrfs();
          ~Vrfs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          class Vrf; //type: MplsLdp::Global::Active::Vrfs::Vrf
  
          ydk::YList vrf;
          
  }; // MplsLdp::Global::Active::Vrfs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf : public ydk::Entity
  {
      public:
          Vrf();
          ~Vrf();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
          std::string get_absolute_path() const override;
  
          ydk::YLeaf vrf_name; //type: string
          class GracefulRestart; //type: MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart
          class Capabilities; //type: MplsLdp::Global::Active::Vrfs::Vrf::Capabilities
          class Summary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Summary
          class Afs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs
          class NeighborBriefs; //type: MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs
          class BackoffParameters; //type: MplsLdp::Global::Active::Vrfs::Vrf::BackoffParameters
          class Backoffs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Backoffs
          class Nsr; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr
          class Parameters; //type: MplsLdp::Global::Active::Vrfs::Vrf::Parameters
          class Issu; //type: MplsLdp::Global::Active::Vrfs::Vrf::Issu
          class NeighborCapabilities; //type: MplsLdp::Global::Active::Vrfs::Vrf::NeighborCapabilities
          class Neighbors; //type: MplsLdp::Global::Active::Vrfs::Vrf::Neighbors
          class LdpId; //type: MplsLdp::Global::Active::Vrfs::Vrf::LdpId
          class Statistics; //type: MplsLdp::Global::Active::Vrfs::Vrf::Statistics
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart> graceful_restart;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Capabilities> capabilities;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Summary> summary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs> afs;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs> neighbor_briefs;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::BackoffParameters> backoff_parameters;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Backoffs> backoffs;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr> nsr;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Parameters> parameters;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Issu> issu;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::NeighborCapabilities> neighbor_capabilities;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Neighbors> neighbors;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::LdpId> ldp_id;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Statistics> statistics;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart : public ydk::Entity
  {
      public:
          GracefulRestart();
          ~GracefulRestart();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf is_forwarding_state_hold_timer_running; //type: boolean
          ydk::YLeaf forwarding_state_hold_timer_remaining_seconds; //type: uint32
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::Vrf_
          class GracefulRestartableNeighbor; //type: MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::Vrf_> vrf;
          ydk::YList graceful_restartable_neighbor;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor : public ydk::Entity
  {
      public:
          GracefulRestartableNeighbor();
          ~GracefulRestartableNeighbor();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf connect_count; //type: uint32
          ydk::YLeaf is_neighbor_up; //type: boolean
          ydk::YLeaf is_liveness_timer_running; //type: boolean
          ydk::YLeaf liveness_timer_remaining_seconds; //type: uint32
          ydk::YLeaf is_recovery_timer_running; //type: boolean
          ydk::YLeaf recovery_timer_remaining_seconds; //type: uint32
          ydk::YLeaf down_nbr_flap_count; //type: uint8
          ydk::YLeaf down_nbr_flags; //type: uint32
          ydk::YLeaf down_nbr_down_reason; //type: uint32
          class GrPeer; //type: MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::GrPeer
          class DownNbrInterface; //type: MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::DownNbrInterface
          class DownNbrAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::DownNbrAddress
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::GrPeer> gr_peer;
          ydk::YList down_nbr_interface;
          ydk::YList down_nbr_address;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::GrPeer : public ydk::Entity
  {
      public:
          GrPeer();
          ~GrPeer();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint16
          ydk::YLeaf ldp_id; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::GrPeer
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::DownNbrInterface : public ydk::Entity
  {
      public:
          DownNbrInterface();
          ~DownNbrInterface();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf address_family; //type: LdpAfId
          ydk::YLeaf interface_handle; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::DownNbrInterface
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::DownNbrAddress : public ydk::Entity
  {
      public:
          DownNbrAddress();
          ~DownNbrAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::GracefulRestart::GracefulRestartableNeighbor::DownNbrAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Capabilities : public ydk::Entity
  {
      public:
          Capabilities();
          ~Capabilities();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Capability; //type: MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability
  
          ydk::YList capability;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Capabilities
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability : public ydk::Entity
  {
      public:
          Capability();
          ~Capability();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf capability_type; //type: uint32
          ydk::YLeaf capability_owner; //type: string
          class Capability_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability::Capability_
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability::Capability_> capability;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability::Capability_ : public ydk::Entity
  {
      public:
          Capability_();
          ~Capability_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf type; //type: uint16
          ydk::YLeaf description; //type: string
          ydk::YLeaf capability_data_length; //type: uint16
          ydk::YLeaf capability_data; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Capabilities::Capability::Capability_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Summary : public ydk::Entity
  {
      public:
          Summary();
          ~Summary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Summary::Vrf_
          class Common; //type: MplsLdp::Global::Active::Vrfs::Vrf::Summary::Common
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Summary::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Summary::Common> common;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Summary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Summary::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Summary::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Summary::Common : public ydk::Entity
  {
      public:
          Common();
          ~Common();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf address_families; //type: LdpAf
          ydk::YLeaf number_of_ipv4af; //type: uint32
          ydk::YLeaf number_of_ipv6af; //type: uint32
          ydk::YLeaf number_of_neighbors; //type: uint32
          ydk::YLeaf number_of_nsr_synced_neighbors; //type: uint32
          ydk::YLeaf number_of_graceful_restart_neighbors; //type: uint32
          ydk::YLeaf number_of_downstream_on_demand_neighbors; //type: uint32
          ydk::YLeaf number_of_ipv4_hello_adj; //type: uint32
          ydk::YLeaf number_of_ipv6_hello_adj; //type: uint32
          ydk::YLeaf number_of_ipv4_routes; //type: uint32
          ydk::YLeaf number_of_ipv6_routes; //type: uint32
          ydk::YLeaf number_of_ipv4_local_addresses; //type: uint32
          ydk::YLeaf number_of_ipv6_local_addresses; //type: uint32
          ydk::YLeaf number_of_ldp_interfaces; //type: uint32
          ydk::YLeaf number_of_ipv4ldp_interfaces; //type: uint32
          ydk::YLeaf number_of_ipv6ldp_interfaces; //type: uint32
          ydk::YLeaf number_of_bindings_ipv4; //type: uint32
          ydk::YLeaf number_of_bindings_ipv6; //type: uint32
          ydk::YLeaf number_of_local_bindings_ipv4; //type: uint32
          ydk::YLeaf number_of_local_bindings_ipv6; //type: uint32
          ydk::YLeaf number_of_remote_bindings_ipv4; //type: uint32
          ydk::YLeaf number_of_remote_bindings_ipv6; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Summary::Common
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs : public ydk::Entity
  {
      public:
          Afs();
          ~Afs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Af; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af
  
          ydk::YList af;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af : public ydk::Entity
  {
      public:
          Af();
          ~Af();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf af_name; //type: MplsLdpOperAfName
          class InterfaceSummary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::InterfaceSummary
          class Bindings; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings
          class Igp; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp
          class BindingsSummary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary
          class Interfaces; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces
          class Discovery; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery
          class Forwardings; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings
          class BindingsAdvertiseSpec; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec
          class ForwardingSummary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::InterfaceSummary> interface_summary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings> bindings;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp> igp;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary> bindings_summary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces> interfaces;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery> discovery;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings> forwardings;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec> bindings_advertise_spec;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary> forwarding_summary;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::InterfaceSummary : public ydk::Entity
  {
      public:
          InterfaceSummary();
          ~InterfaceSummary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf known_ip_interface_count; //type: uint32
          ydk::YLeaf known_ip_interface_ldp_enabled; //type: uint32
          ydk::YLeaf ldp_configured_attached_interface; //type: uint32
          ydk::YLeaf ldp_configured_te_interface; //type: uint32
          ydk::YLeaf forward_references; //type: uint32
          ydk::YLeaf auto_config_disabled; //type: uint32
          ydk::YLeaf auto_config; //type: uint32
          ydk::YLeaf auto_config_forward_reference_interfaces; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::InterfaceSummary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings : public ydk::Entity
  {
      public:
          Bindings();
          ~Bindings();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Binding; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding
  
          ydk::YList binding;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding : public ydk::Entity
  {
      public:
          Binding();
          ~Binding();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf prefix; //type: string
          ydk::YLeaf prefix_length; //type: uint8
          ydk::YLeaf local_label; //type: uint32
          ydk::YLeaf le_local_binding_revision; //type: uint32
          ydk::YLeaf le_local_label_state; //type: LocalLabelState
          ydk::YLeaf is_no_route; //type: boolean
          ydk::YLeaf label_oor; //type: boolean
          ydk::YLeaf advertise_prefix_acl; //type: string
          ydk::YLeaf advertise_tsr_acl; //type: string
          ydk::YLeaf config_enforced_local_label_value; //type: boolean
          ydk::YLeaf is_elc; //type: boolean
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::Vrf_
          class PrefixXr; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PrefixXr
          class RemoteBinding; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding
          class PeersAdvertisedTo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PeersAdvertisedTo
          class PeersAcked; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PeersAcked
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PrefixXr> prefix_xr;
          ydk::YList remote_binding;
          ydk::YList peers_advertised_to;
          ydk::YList peers_acked;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PrefixXr : public ydk::Entity
  {
      public:
          PrefixXr();
          ~PrefixXr();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PrefixXr
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding : public ydk::Entity
  {
      public:
          RemoteBinding();
          ~RemoteBinding();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf remote_label; //type: uint32
          ydk::YLeaf is_stale; //type: boolean
          ydk::YLeaf is_elc; //type: boolean
          class AssigningPeerLdpIdent; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding::AssigningPeerLdpIdent
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding::AssigningPeerLdpIdent> assigning_peer_ldp_ident;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding::AssigningPeerLdpIdent : public ydk::Entity
  {
      public:
          AssigningPeerLdpIdent();
          ~AssigningPeerLdpIdent();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint16
          ydk::YLeaf ldp_id; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::RemoteBinding::AssigningPeerLdpIdent
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PeersAdvertisedTo : public ydk::Entity
  {
      public:
          PeersAdvertisedTo();
          ~PeersAdvertisedTo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint16
          ydk::YLeaf ldp_id; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PeersAdvertisedTo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PeersAcked : public ydk::Entity
  {
      public:
          PeersAcked();
          ~PeersAcked();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint16
          ydk::YLeaf ldp_id; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Bindings::Binding::PeersAcked
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp : public ydk::Entity
  {
      public:
          Igp();
          ~Igp();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Syncs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs
          class SyncDelayRestart; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::SyncDelayRestart
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs> syncs;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::SyncDelayRestart> sync_delay_restart;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs : public ydk::Entity
  {
      public:
          Syncs();
          ~Syncs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Sync; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync
  
          ydk::YList sync;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync : public ydk::Entity
  {
      public:
          Sync();
          ~Sync();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf interface_name; //type: string
          ydk::YLeaf interface_name_xr; //type: string
          ydk::YLeaf igp_sync_state; //type: LdpIgpSyncState
          ydk::YLeaf igp_sync_delay; //type: uint32
          ydk::YLeaf is_delay_timer_running; //type: boolean
          ydk::YLeaf delay_timer_remaining; //type: uint32
          ydk::YLeaf igp_sync_down_reason; //type: LdpIgpSyncDownReason
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Vrf_
          class Peers; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Peers
          class GrOnlyPeer; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::GrOnlyPeer
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Vrf_> vrf;
          ydk::YList peers;
          ydk::YList gr_only_peer;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Peers : public ydk::Entity
  {
      public:
          Peers();
          ~Peers();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf peer_id; //type: string
          ydk::YLeaf is_gr_enabled; //type: boolean
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::Peers
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::GrOnlyPeer : public ydk::Entity
  {
      public:
          GrOnlyPeer();
          ~GrOnlyPeer();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf peer_id; //type: string
          ydk::YLeaf is_chkpt_created; //type: boolean
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::Syncs::Sync::GrOnlyPeer
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::SyncDelayRestart : public ydk::Entity
  {
      public:
          SyncDelayRestart();
          ~SyncDelayRestart();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf configured; //type: boolean
          ydk::YLeaf delay_secs; //type: uint32
          ydk::YLeaf timer_running; //type: boolean
          ydk::YLeaf remaining_secs; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Igp::SyncDelayRestart
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary : public ydk::Entity
  {
      public:
          BindingsSummary();
          ~BindingsSummary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf address_family; //type: LdpAf
          ydk::YLeaf binding_no_route; //type: uint32
          ydk::YLeaf binding_local_no_route; //type: uint32
          ydk::YLeaf binding_local_null; //type: uint32
          ydk::YLeaf binding_local_implicit_null; //type: uint32
          ydk::YLeaf binding_local_explicit_null; //type: uint32
          ydk::YLeaf binding_local_non_null; //type: uint32
          ydk::YLeaf binding_local_oor; //type: uint32
          ydk::YLeaf lowest_allocated_label; //type: uint32
          ydk::YLeaf highest_allocated_label; //type: uint32
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::Vrf_
          class BindAf; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::BindAf
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::Vrf_> vrf;
          ydk::YList bind_af;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::BindAf : public ydk::Entity
  {
      public:
          BindAf();
          ~BindAf();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf address_family; //type: LdpAf
          ydk::YLeaf last_lib_update; //type: uint32
          ydk::YLeaf lib_minimum_revision_sent_all; //type: uint32
          ydk::YLeaf binding_total; //type: uint32
          ydk::YLeaf binding_local; //type: uint32
          ydk::YLeaf binding_remote; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsSummary::BindAf
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces : public ydk::Entity
  {
      public:
          Interfaces();
          ~Interfaces();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Interface; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface
  
          ydk::YList interface;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface : public ydk::Entity
  {
      public:
          Interface();
          ~Interface();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf interface_name; //type: string
          ydk::YLeaf interface; //type: string
          ydk::YLeaf interface_name_xr; //type: string
          ydk::YLeaf ldp_enabled; //type: boolean
          ydk::YLeaf is_im_stale; //type: boolean
          ydk::YLeaf ldp_config_mode; //type: boolean
          ydk::YLeaf ldp_autoconfig_disable; //type: boolean
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::Vrf_
          class TeMeshGrp; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::TeMeshGrp
          class AutoConfig; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::AutoConfig
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::Vrf_> vrf;
          ydk::YList te_mesh_grp;
          ydk::YList auto_config;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::TeMeshGrp : public ydk::Entity
  {
      public:
          TeMeshGrp();
          ~TeMeshGrp();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf ldp_te_mesh_group_all_cfgd; //type: boolean
          ydk::YLeaf ldp_mesh_group_enabled; //type: boolean
          ydk::YLeaf te_mesh_group_id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::TeMeshGrp
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::AutoConfig : public ydk::Entity
  {
      public:
          AutoConfig();
          ~AutoConfig();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf tuple; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Interfaces::Interface::AutoConfig
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery : public ydk::Entity
  {
      public:
          Discovery();
          ~Discovery();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class LinkHellos; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos
          class Summary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary
          class TargetedHellos; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos
          class Brief; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief
          class Stats; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos> link_hellos;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary> summary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos> targeted_hellos;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief> brief;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats> stats;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos : public ydk::Entity
  {
      public:
          LinkHellos();
          ~LinkHellos();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class LinkHello; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello
  
          ydk::YList link_hello;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello : public ydk::Entity
  {
      public:
          LinkHello();
          ~LinkHello();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf interface_name; //type: string
          ydk::YLeaf next_hello; //type: uint32
          ydk::YLeaf interface; //type: string
          ydk::YLeaf interface_name_xr; //type: string
          ydk::YLeaf quick_start_disabled; //type: boolean
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::Vrf_
          class HelloInformation; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation
          class DiscoveryLinkAf; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::Vrf_> vrf;
          ydk::YList hello_information;
          ydk::YList discovery_link_af;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation : public ydk::Entity
  {
      public:
          HelloInformation();
          ~HelloInformation();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf neighbor_ldp_identifier; //type: string
          ydk::YLeaf is_no_route; //type: boolean
          ydk::YLeaf hold_time; //type: uint32
          ydk::YLeaf local_hold_time; //type: uint32
          ydk::YLeaf neighbor_hold_time; //type: uint32
          ydk::YLeaf disc_expiry; //type: uint32
          ydk::YLeaf is_targeted; //type: boolean
          ydk::YLeaf session_up; //type: boolean
          ydk::YLeaf established_time; //type: uint64
          ydk::YLeaf established_age; //type: uint64
          ydk::YLeaf session_bringup_failure_reason; //type: string
          class NeighborSrcAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborSrcAddress
          class NeighborTransportAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborTransportAddress
          class Target; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::Target
          class LastSessionDownInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::LastSessionDownInfo
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborSrcAddress> neighbor_src_address;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborTransportAddress> neighbor_transport_address;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::Target> target;
          ydk::YList last_session_down_info;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborSrcAddress : public ydk::Entity
  {
      public:
          NeighborSrcAddress();
          ~NeighborSrcAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborSrcAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborTransportAddress : public ydk::Entity
  {
      public:
          NeighborTransportAddress();
          ~NeighborTransportAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::NeighborTransportAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::Target : public ydk::Entity
  {
      public:
          Target();
          ~Target();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::Target
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::LastSessionDownInfo : public ydk::Entity
  {
      public:
          LastSessionDownInfo();
          ~LastSessionDownInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf last_session_down_reason; //type: string
          ydk::YLeaf last_session_down_time; //type: uint64
          ydk::YLeaf last_session_up_time; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::HelloInformation::LastSessionDownInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf : public ydk::Entity
  {
      public:
          DiscoveryLinkAf();
          ~DiscoveryLinkAf();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf interval; //type: uint32
          class LocalSrcAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalSrcAddress
          class LocalTransportAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalTransportAddress
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalSrcAddress> local_src_address;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalTransportAddress> local_transport_address;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalSrcAddress : public ydk::Entity
  {
      public:
          LocalSrcAddress();
          ~LocalSrcAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalSrcAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalTransportAddress : public ydk::Entity
  {
      public:
          LocalTransportAddress();
          ~LocalTransportAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::LinkHellos::LinkHello::DiscoveryLinkAf::LocalTransportAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary : public ydk::Entity
  {
      public:
          Summary();
          ~Summary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf local_ldp_id; //type: string
          ydk::YLeaf num_of_ldp_interfaces; //type: uint32
          ydk::YLeaf num_of_active_ldp_interfaces; //type: uint32
          ydk::YLeaf num_of_lnk_disc_xmit; //type: uint32
          ydk::YLeaf num_of_tgt_disc_xmit; //type: uint32
          ydk::YLeaf num_of_lnk_disc_recv; //type: uint32
          ydk::YLeaf num_of_tgt_disc_recv; //type: uint32
          ydk::YLeaf num_of_disc_with_bad_addr_recv; //type: uint32
          ydk::YLeaf num_of_disc_with_bad_hello_pdu; //type: uint32
          ydk::YLeaf num_of_disc_with_bad_xport_addr; //type: uint32
          ydk::YLeaf num_of_disc_with_same_router_id; //type: uint32
          ydk::YLeaf num_of_disc_with_wrong_router_id; //type: uint32
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary::Vrf_
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary::Vrf_> vrf;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Summary::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos : public ydk::Entity
  {
      public:
          TargetedHellos();
          ~TargetedHellos();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class TargetedHello; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello
  
          ydk::YList targeted_hello;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello : public ydk::Entity
  {
      public:
          TargetedHello();
          ~TargetedHello();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf local_address; //type: string
          ydk::YLeaf target_address; //type: string
          ydk::YLeaf state; //type: DhcbState
          ydk::YLeaf adjacency_ldp_identifier; //type: string
          ydk::YLeaf interval; //type: uint32
          ydk::YLeaf next_hello; //type: uint32
          ydk::YLeaf hold_time; //type: uint32
          ydk::YLeaf local_hold_time; //type: uint32
          ydk::YLeaf neighbor_hold_time; //type: uint32
          ydk::YLeaf disc_expiry; //type: uint32
          ydk::YLeaf quick_start_disabled; //type: boolean
          ydk::YLeaf established_time; //type: uint64
          ydk::YLeaf established_age; //type: uint64
          ydk::YLeaf session_up; //type: boolean
          ydk::YLeaf session_bringup_failure_reason; //type: string
          class DhcbLocalAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbLocalAddress
          class DhcbTargetAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbTargetAddress
          class LastSessionDownInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::LastSessionDownInfo
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbLocalAddress> dhcb_local_address;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbTargetAddress> dhcb_target_address;
          ydk::YList last_session_down_info;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbLocalAddress : public ydk::Entity
  {
      public:
          DhcbLocalAddress();
          ~DhcbLocalAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbLocalAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbTargetAddress : public ydk::Entity
  {
      public:
          DhcbTargetAddress();
          ~DhcbTargetAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::DhcbTargetAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::LastSessionDownInfo : public ydk::Entity
  {
      public:
          LastSessionDownInfo();
          ~LastSessionDownInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf last_session_down_reason; //type: string
          ydk::YLeaf last_session_down_time; //type: uint64
          ydk::YLeaf last_session_up_time; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::TargetedHellos::TargetedHello::LastSessionDownInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief : public ydk::Entity
  {
      public:
          Brief();
          ~Brief();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class LinkHelloBriefs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs
          class TargetedHelloBriefs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs> link_hello_briefs;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs> targeted_hello_briefs;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs : public ydk::Entity
  {
      public:
          LinkHelloBriefs();
          ~LinkHelloBriefs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class LinkHelloBrief; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief
  
          ydk::YList link_hello_brief;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief : public ydk::Entity
  {
      public:
          LinkHelloBrief();
          ~LinkHelloBrief();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf interface_name; //type: string
          ydk::YLeaf address_family; //type: LdpAf
          ydk::YLeaf address_family_set; //type: LdpAf
          ydk::YLeaf interface; //type: string
          ydk::YLeaf interface_name_xr; //type: string
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::Vrf_
          class HelloInformation; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::HelloInformation
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::Vrf_> vrf;
          ydk::YList hello_information;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::HelloInformation : public ydk::Entity
  {
      public:
          HelloInformation();
          ~HelloInformation();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf neighbor_ldp_identifier; //type: string
          ydk::YLeaf hold_time; //type: uint32
          ydk::YLeaf session_up; //type: boolean
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::LinkHelloBriefs::LinkHelloBrief::HelloInformation
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs : public ydk::Entity
  {
      public:
          TargetedHelloBriefs();
          ~TargetedHelloBriefs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class TargetedHelloBrief; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief
  
          ydk::YList targeted_hello_brief;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief : public ydk::Entity
  {
      public:
          TargetedHelloBrief();
          ~TargetedHelloBrief();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf local_address; //type: string
          ydk::YLeaf target_address; //type: string
          ydk::YLeaf address_family; //type: LdpAf
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::Vrf_
          class DhcbTargetAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::DhcbTargetAddress
          class HelloInformation; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::HelloInformation
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::DhcbTargetAddress> dhcb_target_address;
          ydk::YList hello_information;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::DhcbTargetAddress : public ydk::Entity
  {
      public:
          DhcbTargetAddress();
          ~DhcbTargetAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::DhcbTargetAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::HelloInformation : public ydk::Entity
  {
      public:
          HelloInformation();
          ~HelloInformation();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf neighbor_ldp_identifier; //type: string
          ydk::YLeaf hold_time; //type: uint32
          ydk::YLeaf session_up; //type: boolean
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Brief::TargetedHelloBriefs::TargetedHelloBrief::HelloInformation
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats : public ydk::Entity
  {
      public:
          Stats();
          ~Stats();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Stat; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats::Stat
  
          ydk::YList stat;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats::Stat : public ydk::Entity
  {
      public:
          Stat();
          ~Stat();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint32
          ydk::YLeaf adjacency_group_up_time; //type: uint32
          ydk::YLeaf tcp_open_count; //type: uint32
          ydk::YLeaf tcp_arb_chg_count; //type: uint32
          ydk::YLeaf tcp_role; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Discovery::Stats::Stat
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings : public ydk::Entity
  {
      public:
          Forwardings();
          ~Forwardings();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Forwarding; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding
  
          ydk::YList forwarding;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding : public ydk::Entity
  {
      public:
          Forwarding();
          ~Forwarding();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf prefix; //type: string
          ydk::YLeaf table_id; //type: uint32
          ydk::YLeaf prefix_length; //type: uint8
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Vrf_
          class PrefixXr; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::PrefixXr
          class Route; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route
          class Paths; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::PrefixXr> prefix_xr;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route> route;
          ydk::YList paths;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::PrefixXr : public ydk::Entity
  {
      public:
          PrefixXr();
          ~PrefixXr();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::PrefixXr
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route : public ydk::Entity
  {
      public:
          Route();
          ~Route();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Routing; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Routing
          class Mpls; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Mpls
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Routing> routing;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Mpls> mpls;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Routing : public ydk::Entity
  {
      public:
          Routing();
          ~Routing();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf version; //type: uint32
          ydk::YLeaf priority; //type: uint8
          ydk::YLeaf source; //type: uint16
          ydk::YLeaf type; //type: uint16
          ydk::YLeaf flags; //type: uint32
          ydk::YLeaf metric; //type: uint32
          ydk::YLeaf is_local_vrf_leaked; //type: boolean
          ydk::YLeaf routing_update_count; //type: uint32
          ydk::YLeaf routing_update_timestamp; //type: uint64
          ydk::YLeaf routing_update_age; //type: uint64
          ydk::YLeaf sr_local_label; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Routing
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Mpls : public ydk::Entity
  {
      public:
          Mpls();
          ~Mpls();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf local_label; //type: uint32
          ydk::YLeaf forwarding_update_count; //type: uint32
          ydk::YLeaf forwarding_update_timestamp; //type: uint64
          ydk::YLeaf forwarding_update_age; //type: uint64
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Route::Mpls
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths : public ydk::Entity
  {
      public:
          Paths();
          ~Paths();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Routing; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing
          class Mpls; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing> routing;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls> mpls;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing : public ydk::Entity
  {
      public:
          Routing();
          ~Routing();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf interface; //type: string
          ydk::YLeaf interface_name; //type: string
          ydk::YLeaf nh_is_overriden; //type: boolean
          ydk::YLeaf nexthop_id; //type: uint32
          ydk::YLeaf next_hop_table_id; //type: uint32
          ydk::YLeaf flags; //type: uint32
          ydk::YLeaf load_metric; //type: uint32
          ydk::YLeaf path_id; //type: uint8
          ydk::YLeaf bkup_path_id; //type: uint8
          ydk::YLeaf path_flags; //type: LdpRoutePathFlags
          class NextHop; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::NextHop
          class RemoteLfa; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::NextHop> next_hop;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa> remote_lfa;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::NextHop : public ydk::Entity
  {
      public:
          NextHop();
          ~NextHop();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::NextHop
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa : public ydk::Entity
  {
      public:
          RemoteLfa();
          ~RemoteLfa();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf has_remote_lfa_bkup; //type: boolean
          ydk::YLeaf needs_tldp; //type: boolean
          ydk::YLeaf has_q_node; //type: boolean
          class RemotePNodeId; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemotePNodeId
          class RemoteQNodeId; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemoteQNodeId
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemotePNodeId> remote_p_node_id;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemoteQNodeId> remote_q_node_id;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemotePNodeId : public ydk::Entity
  {
      public:
          RemotePNodeId();
          ~RemotePNodeId();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemotePNodeId
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemoteQNodeId : public ydk::Entity
  {
      public:
          RemoteQNodeId();
          ~RemoteQNodeId();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Routing::RemoteLfa::RemoteQNodeId
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls : public ydk::Entity
  {
      public:
          Mpls();
          ~Mpls();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class MplsOutgoingInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo
          class RemoteLfa; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo> mpls_outgoing_info;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa> remote_lfa;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo : public ydk::Entity
  {
      public:
          MplsOutgoingInfo();
          ~MplsOutgoingInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf out_label; //type: uint32
          ydk::YLeaf out_label_rsn; //type: LdpFwdUnlblRsn
          ydk::YLeaf out_label_type; //type: LabelValue
          ydk::YLeaf out_label_owner; //type: LdpRoutePathLblOwner
          ydk::YLeaf is_from_graceful_restartable_neighbor; //type: boolean
          ydk::YLeaf is_stale; //type: boolean
          class NexthopPeerLdpIdent; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo::NexthopPeerLdpIdent
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo::NexthopPeerLdpIdent> nexthop_peer_ldp_ident;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo::NexthopPeerLdpIdent : public ydk::Entity
  {
      public:
          NexthopPeerLdpIdent();
          ~NexthopPeerLdpIdent();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint16
          ydk::YLeaf ldp_id; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::MplsOutgoingInfo::NexthopPeerLdpIdent
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa : public ydk::Entity
  {
      public:
          RemoteLfa();
          ~RemoteLfa();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf has_remote_lfa_bkup; //type: boolean
          class MplsOutgoingInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo> mpls_outgoing_info;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo : public ydk::Entity
  {
      public:
          MplsOutgoingInfo();
          ~MplsOutgoingInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Stack; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack
  
          ydk::YList stack;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack : public ydk::Entity
  {
      public:
          Stack();
          ~Stack();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf out_label; //type: uint32
          ydk::YLeaf out_label_rsn; //type: LdpFwdUnlblRsn
          ydk::YLeaf out_label_type; //type: LabelValue
          ydk::YLeaf out_label_owner; //type: LdpRoutePathLblOwner
          ydk::YLeaf is_from_graceful_restartable_neighbor; //type: boolean
          ydk::YLeaf is_stale; //type: boolean
          class NexthopPeerLdpIdent; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack::NexthopPeerLdpIdent
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack::NexthopPeerLdpIdent> nexthop_peer_ldp_ident;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack::NexthopPeerLdpIdent : public ydk::Entity
  {
      public:
          NexthopPeerLdpIdent();
          ~NexthopPeerLdpIdent();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint16
          ydk::YLeaf ldp_id; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::Forwardings::Forwarding::Paths::Mpls::RemoteLfa::MplsOutgoingInfo::Stack::NexthopPeerLdpIdent
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec : public ydk::Entity
  {
      public:
          BindingsAdvertiseSpec();
          ~BindingsAdvertiseSpec();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class AllocationAcl; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AllocationAcl
          class AdvtAcl; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AdvtAcl
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AllocationAcl> allocation_acl;
          ydk::YList advt_acl;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AllocationAcl : public ydk::Entity
  {
      public:
          AllocationAcl();
          ~AllocationAcl();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf has_acl; //type: boolean
          ydk::YLeaf prefix_acl; //type: string
          ydk::YLeaf is_host_route_only; //type: boolean
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AllocationAcl
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AdvtAcl : public ydk::Entity
  {
      public:
          AdvtAcl();
          ~AdvtAcl();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf prefix_acl; //type: string
          ydk::YLeaf peer_acl; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::BindingsAdvertiseSpec::AdvtAcl
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary : public ydk::Entity
  {
      public:
          ForwardingSummary();
          ~ForwardingSummary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf is_lsd_bound; //type: boolean
          ydk::YLeaf fsht; //type: uint16
          ydk::YLeaf intfs; //type: uint16
          ydk::YLeaf lbls; //type: uint16
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Vrf_
          class Rws; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws> rws;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws : public ydk::Entity
  {
      public:
          Rws();
          ~Rws();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Pfxs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs
          class Nhs; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Nhs
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs> pfxs;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Nhs> nhs;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs : public ydk::Entity
  {
      public:
          Pfxs();
          ~Pfxs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf total_pfxs; //type: uint16
          ydk::YLeaf ecmp_pfxs; //type: uint16
          ydk::YLeaf protected_pfxs; //type: uint16
          class LabeledPfxsAggr; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsAggr
          class LabeledPfxsPrimary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsPrimary
          class LabeledPfxsBackup; //type: MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsBackup
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsAggr> labeled_pfxs_aggr;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsPrimary> labeled_pfxs_primary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsBackup> labeled_pfxs_backup;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsAggr : public ydk::Entity
  {
      public:
          LabeledPfxsAggr();
          ~LabeledPfxsAggr();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf labeled_pfxs; //type: uint16
          ydk::YLeaf labeled_pfxs_partial; //type: uint16
          ydk::YLeaf unlabeled_pfxs; //type: uint16
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsAggr
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsPrimary : public ydk::Entity
  {
      public:
          LabeledPfxsPrimary();
          ~LabeledPfxsPrimary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf labeled_pfxs; //type: uint16
          ydk::YLeaf labeled_pfxs_partial; //type: uint16
          ydk::YLeaf unlabeled_pfxs; //type: uint16
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsPrimary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsBackup : public ydk::Entity
  {
      public:
          LabeledPfxsBackup();
          ~LabeledPfxsBackup();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf labeled_pfxs; //type: uint16
          ydk::YLeaf labeled_pfxs_partial; //type: uint16
          ydk::YLeaf unlabeled_pfxs; //type: uint16
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Pfxs::LabeledPfxsBackup
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Nhs : public ydk::Entity
  {
      public:
          Nhs();
          ~Nhs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf total_paths; //type: uint32
          ydk::YLeaf protected_paths; //type: uint32
          ydk::YLeaf backup_paths; //type: uint32
          ydk::YLeaf remote_backup_paths; //type: uint32
          ydk::YLeaf labeled_paths; //type: uint32
          ydk::YLeaf labeled_backup_paths; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Afs::Af::ForwardingSummary::Rws::Nhs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs : public ydk::Entity
  {
      public:
          NeighborBriefs();
          ~NeighborBriefs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class NeighborBrief; //type: MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief
  
          ydk::YList neighbor_brief;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief : public ydk::Entity
  {
      public:
          NeighborBrief();
          ~NeighborBrief();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint32
          ydk::YLeaf is_graceful_restartable; //type: boolean
          ydk::YLeaf nsr_state; //type: ShowNsrState
          ydk::YLeaf up_time_seconds; //type: uint32
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::Vrf_
          class NbrBrAfInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::NbrBrAfInfo
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::Vrf_> vrf;
          ydk::YList nbr_br_af_info;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::NbrBrAfInfo : public ydk::Entity
  {
      public:
          NbrBrAfInfo();
          ~NbrBrAfInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf address_family; //type: LdpAf
          ydk::YLeaf num_of_nbr_discovery; //type: uint32
          ydk::YLeaf num_of_nbr_addresses; //type: uint32
          ydk::YLeaf num_of_nbr_lbl; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::NeighborBriefs::NeighborBrief::NbrBrAfInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::BackoffParameters : public ydk::Entity
  {
      public:
          BackoffParameters();
          ~BackoffParameters();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf initial_seconds; //type: uint32
          ydk::YLeaf maximum_seconds; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::BackoffParameters
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Backoffs : public ydk::Entity
  {
      public:
          Backoffs();
          ~Backoffs();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Backoff; //type: MplsLdp::Global::Active::Vrfs::Vrf::Backoffs::Backoff
  
          ydk::YList backoff;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Backoffs
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Backoffs::Backoff : public ydk::Entity
  {
      public:
          Backoff();
          ~Backoff();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint32
          ydk::YLeaf backoff_seconds; //type: uint32
          ydk::YLeaf waiting_seconds; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Backoffs::Backoff
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr : public ydk::Entity
  {
      public:
          Nsr();
          ~Nsr();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class NsrPending; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending
          class HaSummary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary
          class HaStatistics; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending> nsr_pending;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary> ha_summary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics> ha_statistics;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending : public ydk::Entity
  {
      public:
          NsrPending();
          ~NsrPending();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class HaNeighbors; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors> ha_neighbors;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors : public ydk::Entity
  {
      public:
          HaNeighbors();
          ~HaNeighbors();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class HaNeighbor; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor
  
          ydk::YList ha_neighbor;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor : public ydk::Entity
  {
      public:
          HaNeighbor();
          ~HaNeighbor();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint32
          ydk::YLeaf lsr_id_xr; //type: uint32
          ydk::YLeaf lbl_spc_id; //type: uint16
          ydk::YLeaf nsr_sync_state; //type: int32
          ydk::YLeaf num_msg; //type: uint32
          class InitSyncInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::InitSyncInfo
          class SteadyStateSyncInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::SteadyStateSyncInfo
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::InitSyncInfo> init_sync_info;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::SteadyStateSyncInfo> steady_state_sync_info;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::InitSyncInfo : public ydk::Entity
  {
      public:
          InitSyncInfo();
          ~InitSyncInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf init_sync_start; //type: uint32
          ydk::YLeaf init_sync_end; //type: uint32
          ydk::YLeaf num_addr; //type: uint32
          ydk::YLeaf num_duplicate_addr; //type: uint32
          ydk::YLeaf num_rx_bytes; //type: uint32
          ydk::YLeaf num_cap_sent; //type: uint32
          ydk::YLeaf num_cap_rcvd; //type: uint32
          ydk::YLeaf num_lbl; //type: uint32
          ydk::YLeaf num_app_bytes; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::InitSyncInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::SteadyStateSyncInfo : public ydk::Entity
  {
      public:
          SteadyStateSyncInfo();
          ~SteadyStateSyncInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf num_cap_sent; //type: uint32
          ydk::YLeaf num_cap_rcvd; //type: uint32
          ydk::YLeaf rem_lbl_wd; //type: uint32
          ydk::YLeaf rem_lbl_rq; //type: uint32
          ydk::YLeaf num_stdby_adj_join; //type: uint32
          ydk::YLeaf num_stdby_adj_leave; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::NsrPending::HaNeighbors::HaNeighbor::SteadyStateSyncInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary : public ydk::Entity
  {
      public:
          HaSummary();
          ~HaSummary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Vrf_
          class Sessions; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Sessions
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Sessions> sessions;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Sessions : public ydk::Entity
  {
      public:
          Sessions();
          ~Sessions();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf total; //type: uint32
          ydk::YLeaf nsr_eligible; //type: uint32
          ydk::YLeaf nsr_state_none; //type: uint32
          ydk::YLeaf nsr_state_wait; //type: uint32
          ydk::YLeaf nsr_state_ready; //type: uint32
          ydk::YLeaf nsr_state_prepare; //type: uint32
          ydk::YLeaf nsr_state_app_wait; //type: uint32
          ydk::YLeaf nsr_state_operational; //type: uint32
          ydk::YLeaf nsr_state_tcp_phase1; //type: uint32
          ydk::YLeaf nsr_state_tcp_phase2; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaSummary::Sessions
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics : public ydk::Entity
  {
      public:
          HaStatistics();
          ~HaStatistics();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class HaGlobal; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal
          class HaNeighbors; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal> ha_global;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors> ha_neighbors;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal : public ydk::Entity
  {
      public:
          HaGlobal();
          ~HaGlobal();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class InitSync; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal::InitSync
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal::InitSync> init_sync;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal::InitSync : public ydk::Entity
  {
      public:
          InitSync();
          ~InitSync();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf nsr_cfged; //type: boolean
          ydk::YLeaf nsr_synced; //type: boolean
          ydk::YLeaf init_sync_start; //type: uint32
          ydk::YLeaf init_sync_end; //type: uint32
          ydk::YLeaf num_peers; //type: uint32
          ydk::YLeaf num_cap_sent; //type: uint32
          ydk::YLeaf num_cap_rcvd; //type: uint32
          ydk::YLeaf num_pfx; //type: uint32
          ydk::YLeaf num_lbl; //type: uint32
          ydk::YLeaf num_lcl_addr_wd; //type: uint32
          ydk::YLeaf num_lbl_adv; //type: uint32
          ydk::YLeaf ipc_msg_tx_cnt; //type: uint32
          ydk::YLeaf ipc_msg_tx_bytes; //type: uint32
          ydk::YLeaf ipc_msg_rx_cnt; //type: uint32
          ydk::YLeaf ipc_msg_rx_bytes; //type: uint32
          ydk::YLeaf ipc_max_tx_batch_bytes; //type: uint32
          ydk::YLeaf ipc_max_rx_batch_bytes; //type: uint32
          ydk::YLeaf ipc_tx_fail_cnt; //type: uint32
          ydk::YLeaf total_ipc_tx_fail_cnt; //type: uint32
          ydk::YLeaf ipc_restart_cnt; //type: uint32
          ydk::YLeaf ipc_default_mtu; //type: uint32
          ydk::YLeaf ipc_exceeded_mtu_msg_cnt; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaGlobal::InitSync
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors : public ydk::Entity
  {
      public:
          HaNeighbors();
          ~HaNeighbors();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class HaNeighbor; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor
  
          ydk::YList ha_neighbor;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor : public ydk::Entity
  {
      public:
          HaNeighbor();
          ~HaNeighbor();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf lsr_id; //type: string
          ydk::YLeaf label_space_id; //type: uint32
          ydk::YLeaf lsr_id_xr; //type: uint32
          ydk::YLeaf lbl_spc_id; //type: uint16
          ydk::YLeaf nsr_sync_state; //type: int32
          ydk::YLeaf num_msg; //type: uint32
          class InitSyncInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::InitSyncInfo
          class SteadyStateSyncInfo; //type: MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::SteadyStateSyncInfo
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::InitSyncInfo> init_sync_info;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::SteadyStateSyncInfo> steady_state_sync_info;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::InitSyncInfo : public ydk::Entity
  {
      public:
          InitSyncInfo();
          ~InitSyncInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf init_sync_start; //type: uint32
          ydk::YLeaf init_sync_end; //type: uint32
          ydk::YLeaf num_addr; //type: uint32
          ydk::YLeaf num_duplicate_addr; //type: uint32
          ydk::YLeaf num_rx_bytes; //type: uint32
          ydk::YLeaf num_cap_sent; //type: uint32
          ydk::YLeaf num_cap_rcvd; //type: uint32
          ydk::YLeaf num_lbl; //type: uint32
          ydk::YLeaf num_app_bytes; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::InitSyncInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::SteadyStateSyncInfo : public ydk::Entity
  {
      public:
          SteadyStateSyncInfo();
          ~SteadyStateSyncInfo();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf num_cap_sent; //type: uint32
          ydk::YLeaf num_cap_rcvd; //type: uint32
          ydk::YLeaf rem_lbl_wd; //type: uint32
          ydk::YLeaf rem_lbl_rq; //type: uint32
          ydk::YLeaf num_stdby_adj_join; //type: uint32
          ydk::YLeaf num_stdby_adj_leave; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Nsr::HaStatistics::HaNeighbors::HaNeighbor::SteadyStateSyncInfo
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Parameters : public ydk::Entity
  {
      public:
          Parameters();
          ~Parameters();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf role_is_active; //type: boolean
          ydk::YLeaf global_md5_password_enabled; //type: boolean
          ydk::YLeaf protocol_version; //type: uint32
          ydk::YLeaf router_id; //type: string
          ydk::YLeaf keepalive_interval; //type: uint32
          ydk::YLeaf hello_hold_time; //type: uint32
          ydk::YLeaf hello_interval; //type: uint32
          ydk::YLeaf targeted_hello_hold_time; //type: uint32
          ydk::YLeaf targeted_hello_interval; //type: uint32
          ydk::YLeaf session_hold_time; //type: uint32
          ydk::YLeaf housekeeping_timer_interval; //type: uint32
          ydk::YLeaf le_no_route_timeout; //type: uint32
          ydk::YLeaf ldp_recovery_timeout; //type: uint32
          ydk::YLeaf af_binding_withdraw_delay; //type: uint32
          ydk::YLeaf max_intf_attached; //type: uint32
          ydk::YLeaf max_intf_te; //type: uint32
          ydk::YLeaf max_peer; //type: uint32
          ydk::YLeaf ldp_out_of_mem_state; //type: uint32
          ydk::YLeaf nsr_enabled; //type: boolean
          ydk::YLeaf nsr_synced; //type: boolean
          ydk::YLeaf igp_sync_delay_time_for_interface; //type: uint32
          ydk::YLeaf igp_sync_delay_time_on_restart; //type: uint32
          ydk::YLeaf global_discovery_quick_start_disabled; //type: boolean
          ydk::YLeaf discovery_quick_start_disabled_on_interfaces; //type: boolean
          class GracefulRestartInformation; //type: MplsLdp::Global::Active::Vrfs::Vrf::Parameters::GracefulRestartInformation
          class AddressFamilyParameter; //type: MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Parameters::GracefulRestartInformation> graceful_restart_information;
          ydk::YList address_family_parameter;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Parameters
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Parameters::GracefulRestartInformation : public ydk::Entity
  {
      public:
          GracefulRestartInformation();
          ~GracefulRestartInformation();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf is_graceful_restart_configured; //type: boolean
          ydk::YLeaf graceful_restart_reconnect_timeout; //type: uint32
          ydk::YLeaf graceful_restart_forwarding_state_hold_time; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Parameters::GracefulRestartInformation
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter : public ydk::Entity
  {
      public:
          AddressFamilyParameter();
          ~AddressFamilyParameter();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf address_family; //type: LdpAf
          ydk::YLeaf null_label; //type: string
          ydk::YLeaf label_imp_null_override_acl; //type: string
          ydk::YLeaf is_accepting_targeted_hellos; //type: boolean
          ydk::YLeaf targeted_hello_acl; //type: string
          class DiscoveryTransportAddress; //type: MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter::DiscoveryTransportAddress
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter::DiscoveryTransportAddress> discovery_transport_address;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter::DiscoveryTransportAddress : public ydk::Entity
  {
      public:
          DiscoveryTransportAddress();
          ~DiscoveryTransportAddress();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf afi; //type: LdpAfId
          ydk::YLeaf dummy; //type: uint8
          ydk::YLeaf ipv4; //type: string
          ydk::YLeaf ipv6; //type: string
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Parameters::AddressFamilyParameter::DiscoveryTransportAddress
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Issu : public ydk::Entity
  {
      public:
          Issu();
          ~Issu();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class HaSummary; //type: MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary
          class HaStatistics; //type: MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaStatistics
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary> ha_summary;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaStatistics> ha_statistics;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Issu
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary : public ydk::Entity
  {
      public:
          HaSummary();
          ~HaSummary();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          class Vrf_; //type: MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Vrf_
          class Sessions; //type: MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Sessions
  
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Vrf_> vrf;
          std::shared_ptr<cisco_ios_xr::Cisco_IOS_XR_mpls_ldp_oper::MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Sessions> sessions;
          
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Vrf_ : public ydk::Entity
  {
      public:
          Vrf_();
          ~Vrf_();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf name; //type: string
          ydk::YLeaf id; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Vrf_
  
  
  class MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Sessions : public ydk::Entity
  {
      public:
          Sessions();
          ~Sessions();
  
          bool has_data() const override;
          bool has_operation() const override;
          std::vector<std::pair<std::string, ydk::LeafData> > get_name_leaf_data() const override;
          std::string get_segment_path() const override;
          std::shared_ptr<ydk::Entity> get_child_by_name(const std::string & yang_name, const std::string & segment_path) override;
          void set_value(const std::string & value_path, const std::string & value, const std::string & name_space, const std::string & name_space_prefix) override;
          void set_filter(const std::string & value_path, ydk::YFilter yfliter) override;
          std::map<std::string, std::shared_ptr<ydk::Entity>> get_children() const override;
          bool has_leaf_or_child_of_name(const std::string & name) const override;
  
          ydk::YLeaf total; //type: uint32
          ydk::YLeaf nsr_eligible; //type: uint32
          ydk::YLeaf nsr_state_none; //type: uint32
          ydk::YLeaf nsr_state_wait; //type: uint32
          ydk::YLeaf nsr_state_ready; //type: uint32
          ydk::YLeaf nsr_state_prepare; //type: uint32
          ydk::YLeaf nsr_state_app_wait; //type: uint32
          ydk::YLeaf nsr_state_operational; //type: uint32
          ydk::YLeaf nsr_state_tcp_phase1; //type: uint32
          ydk::YLeaf nsr_state_tcp_phase2; //type: uint32
  
  }; // MplsLdp::Global::Active::Vrfs::Vrf::Issu::HaSummary::Sessions
  
  
  }
  }
  
  #endif /* _CISCO_IOS_XR_MPLS_LDP_OPER_4_ */
  
  