# -*- coding: utf-8 -*-
from operator import attrgetter
from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
from pyangbind.lib.yangtypes import RestrictedClassType
from pyangbind.lib.yangtypes import TypedListType
from pyangbind.lib.yangtypes import YANGBool
from pyangbind.lib.yangtypes import YANGListType
from pyangbind.lib.yangtypes import YANGDynClass
from pyangbind.lib.yangtypes import ReferenceType
from pyangbind.lib.base import PybindBase
from collections import OrderedDict
from decimal import Decimal
from bitarray import bitarray
import six

# PY3 support of some PY2 keywords (needs improved)
if six.PY3:
  import builtins as __builtin__
  long = int
elif six.PY2:
  import __builtin__

class openconfig_rib_bgp_ext(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-ext - based on the path /openconfig-rib-bgp-ext. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Defines additional data nodes for the OpenConfig BGP RIB model.
These items reflect extensions that are desirable features but
are not currently supported in a majority of BGP
implementations.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_tables(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-tables - based on the path /openconfig-rib-bgp-tables. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains structural data definitions for
BGP routing tables.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-attributes - based on the path /openconfig-rib-bgp-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for BGP
attributes for use in BGP RIB tables.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_shared_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-shared-attributes - based on the path /openconfig-rib-bgp-shared-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains structural data definitions for
attribute sets shared across routes.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_table_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-table-attributes - based on the path /openconfig-rib-bgp-table-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for data
related to a RIB entry, or RIB table.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp - based on the path /openconfig-rib-bgp. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Defines a data model for representing BGP routing table (RIB)
contents.  The model supports 5 logical RIBs per address family:

loc-rib: This is the main BGP routing table for the local routing
instance, containing best-path selections for each prefix. The
loc-rib table may contain multiple routes for a given prefix,
with an attribute to indicate which was selected as the best
path.  Note that multiple paths may be used or advertised even if
only one path is marked as best, e.g., when using BGP
add-paths.  An implementation may choose to mark multiple
paths in the RIB as best path by setting the flag to true for
multiple entries.

adj-rib-in-pre: This is a per-neighbor table containing the NLRI
updates received from the neighbor before any local input policy
rules or filters have been applied.  This can be considered the
'raw' updates from a given neighbor.

adj-rib-in-post: This is a per-neighbor table containing the
routes received from the neighbor that are eligible for
best-path selection after local input policy rules have been
applied.

adj-rib-out-pre: This is a per-neighbor table containing routes
eligible for sending (advertising) to the neighbor before output
policy rules have been applied.

adj-rib-out-post: This is a per-neighbor table containing routes
eligible for sending (advertising) to the neighbor after output
policy rules have been applied.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_tables(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-tables - based on the path /openconfig-rib-bgp-tables. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains structural data definitions for
BGP routing tables.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_shared_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-shared-attributes - based on the path /openconfig-rib-bgp-shared-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains structural data definitions for
attribute sets shared across routes.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-attributes - based on the path /openconfig-rib-bgp-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for BGP
attributes for use in BGP RIB tables.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_table_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-table-attributes - based on the path /openconfig-rib-bgp-table-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for data
related to a RIB entry, or RIB table.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-attributes - based on the path /openconfig-rib-bgp-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for BGP
attributes for use in BGP RIB tables.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_shared_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-shared-attributes - based on the path /openconfig-rib-bgp-shared-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains structural data definitions for
attribute sets shared across routes.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-attributes - based on the path /openconfig-rib-bgp-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for BGP
attributes for use in BGP RIB tables.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_table_attributes(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-table-attributes - based on the path /openconfig-rib-bgp-table-attributes. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: This submodule contains common data definitions for data
related to a RIB entry, or RIB table.
  """
  _pyangbind_elements = {}

  

class openconfig_rib_bgp_types(PybindBase):
  """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-rib-bgp-types - based on the path /openconfig-rib-bgp-types. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: Defines identity and type defintions associated with
the OpenConfig BGP RIB modules
  """
  _pyangbind_elements = {}

  

