remove yang models form tr-069-adapter
[oam/tr069-adapter.git] / netconf-server / schemas / common / ietf-hardware.yang
diff --git a/netconf-server/schemas/common/ietf-hardware.yang b/netconf-server/schemas/common/ietf-hardware.yang
deleted file mode 100644 (file)
index d909018..0000000
+++ /dev/null
@@ -1,1141 +0,0 @@
-module ietf-hardware {\r
-yang-version 1.1;\r
-namespace "urn:ietf:params:xml:ns:yang:ietf-hardware";\r
-prefix hw;\r
-\r
-import ietf-inet-types {\r
-  prefix inet;\r
-}\r
-import ietf-yang-types {\r
-  prefix yang;\r
-}\r
-import iana-hardware {\r
-  prefix ianahw;\r
-}\r
-\r
-organization\r
-  "IETF NETMOD (Network Modeling) Working Group";\r
-\r
-contact\r
-  "WG Web:   <https://datatracker.ietf.org/wg/netmod/>\r
-   WG List:  <mailto:netmod@ietf.org>\r
-   Editor:   Andy Bierman\r
-             <mailto:andy@yumaworks.com>\r
-   Editor:   Martin Bjorklund\r
-             <mailto:mbj@tail-f.com>\r
-   Editor:   Jie Dong\r
-             <mailto:jie.dong@huawei.com>\r
-   Editor:   Dan Romascanu\r
-             <mailto:dromasca@gmail.com>";\r
-\r
-description\r
-  "This module contains a collection of YANG definitions for\r
-   managing hardware.\r
-   This data model is designed for the Network Management Datastore\r
-   Architecture (NMDA) defined in RFC 8342.\r
-   Copyright (c) 2018 IETF Trust and the persons identified as\r
-   authors of the code.  All rights reserved.\r
-   Redistribution and use in source and binary forms, with or\r
-   without modification, is permitted pursuant to, and subject\r
-   to the license terms contained in, the Simplified BSD License\r
-   set forth in Section 4.c of the IETF Trust's Legal Provisions\r
-   Relating to IETF Documents\r
-   (https://trustee.ietf.org/license-info).\r
-   This version of this YANG module is part of RFC 8348; see\r
-   the RFC itself for full legal notices.";\r
-\r
-revision 2018-03-13 {\r
-  description\r
-    "Initial revision.";\r
-  reference\r
-    "RFC 8348: A YANG Data Model for Hardware Management";\r
-}\r
-\r
-/*\r
- * Features\r
- */\r
-\r
-feature entity-mib {\r
-  description\r
-    "This feature indicates that the device implements\r
-     the ENTITY-MIB.";\r
-  reference\r
-    "RFC 6933: Entity MIB (Version 4)";\r
-}\r
-\r
-feature hardware-state {\r
-  description\r
-    "Indicates that ENTITY-STATE-MIB objects are supported";\r
-  reference\r
-    "RFC 4268: Entity State MIB";\r
-}\r
-\r
-feature hardware-sensor {\r
-  description\r
-    "Indicates that ENTITY-SENSOR-MIB objects are supported";\r
-  reference\r
-    "RFC 3433: Entity Sensor Management Information Base";\r
-}\r
-\r
-/*\r
- * Typedefs\r
- */\r
-\r
-typedef admin-state {\r
-  type enumeration {\r
-    enum unknown {\r
-      value 1;\r
-      description\r
-        "The resource is unable to report administrative state.";\r
-    }\r
-    enum locked {\r
-      value 2;\r
-      description\r
-        "The resource is administratively prohibited from use.";\r
-    }\r
-    enum shutting-down {\r
-      value 3;\r
-      description\r
-        "The resource usage is administratively limited to current\r
-         instances of use.";\r
-    }\r
-    enum unlocked {\r
-      value 4;\r
-      description\r
-        "The resource is not administratively prohibited from\r
-         use.";\r
-    }\r
-  }\r
-  description\r
-    "Represents the various possible administrative states.";\r
-  reference\r
-    "RFC 4268: Entity State MIB - EntityAdminState";\r
-}\r
-\r
-typedef oper-state {\r
-  type enumeration {\r
-    enum unknown {\r
-      value 1;\r
-      description\r
-        "The resource is unable to report its operational state.";\r
-    }\r
-    enum disabled {\r
-      value 2;\r
-      description\r
-        "The resource is totally inoperable.";\r
-    }\r
-    enum enabled {\r
-      value 3;\r
-\r
-      description\r
-        "The resource is partially or fully operable.";\r
-    }\r
-    enum testing {\r
-      value 4;\r
-      description\r
-        "The resource is currently being tested and cannot\r
-         therefore report whether or not it is operational.";\r
-    }\r
-  }\r
-  description\r
-    "Represents the possible values of operational states.";\r
-  reference\r
-    "RFC 4268: Entity State MIB - EntityOperState";\r
-}\r
-\r
-typedef usage-state {\r
-  type enumeration {\r
-    enum unknown {\r
-      value 1;\r
-      description\r
-        "The resource is unable to report usage state.";\r
-    }\r
-    enum idle {\r
-      value 2;\r
-      description\r
-        "The resource is servicing no users.";\r
-    }\r
-    enum active {\r
-      value 3;\r
-      description\r
-        "The resource is currently in use, and it has sufficient\r
-         spare capacity to provide for additional users.";\r
-    }\r
-    enum busy {\r
-      value 4;\r
-      description\r
-        "The resource is currently in use, but it currently has no\r
-         spare capacity to provide for additional users.";\r
-    }\r
-  }\r
-  description\r
-    "Represents the possible values of usage states.";\r
-  reference\r
-    "RFC 4268: Entity State MIB -  EntityUsageState";\r
-}\r
-\r
-typedef alarm-state {\r
-  type bits {\r
-    bit unknown {\r
-      position 0;\r
-      description\r
-        "The resource is unable to report alarm state.";\r
-    }\r
-    bit under-repair {\r
-      position 1;\r
-      description\r
-        "The resource is currently being repaired, which, depending\r
-         on the implementation, may make the other values in this\r
-         bit string not meaningful.";\r
-    }\r
-    bit critical {\r
-      position 2;\r
-      description\r
-        "One or more critical alarms are active against the\r
-         resource.";\r
-    }\r
-    bit major {\r
-      position 3;\r
-      description\r
-        "One or more major alarms are active against the\r
-         resource.";\r
-    }\r
-    bit minor {\r
-      position 4;\r
-      description\r
-        "One or more minor alarms are active against the\r
-         resource.";\r
-    }\r
-    bit warning {\r
-      position 5;\r
-      description\r
-        "One or more warning alarms are active against the\r
-         resource.";\r
-    }\r
-    bit indeterminate {\r
-      position 6;\r
-      description\r
-        "One or more alarms of whose perceived severity cannot be\r
-         determined are active against this resource.";\r
-    }\r
-  }\r
-  description\r
-    "Represents the possible values of alarm states.  An alarm is a\r
-     persistent indication of an error or warning condition.\r
-     When no bits of this attribute are set, then no active alarms\r
-     are known against this component and it is not under repair.";\r
-  reference\r
-    "RFC 4268: Entity State MIB - EntityAlarmStatus";\r
-}\r
-\r
-typedef standby-state {\r
-  type enumeration {\r
-    enum unknown {\r
-      value 1;\r
-      description\r
-        "The resource is unable to report standby state.";\r
-    }\r
-    enum hot-standby {\r
-      value 2;\r
-      description\r
-        "The resource is not providing service, but it will be\r
-         immediately able to take over the role of the resource to\r
-         be backed up, without the need for initialization\r
-         activity, and will contain the same information as the\r
-         resource to be backed up.";\r
-    }\r
-    enum cold-standby {\r
-      value 3;\r
-      description\r
-        "The resource is to back up another resource, but it will\r
-         not be immediately able to take over the role of a\r
-         resource to be backed up and will require some\r
-         initialization activity.";\r
-    }\r
-    enum providing-service {\r
-      value 4;\r
-      description\r
-        "The resource is providing service.";\r
-    }\r
-  }\r
-  description\r
-    "Represents the possible values of standby states.";\r
-  reference\r
-    "RFC 4268: Entity State MIB - EntityStandbyStatus";\r
-}\r
-\r
-typedef sensor-value-type {\r
-  type enumeration {\r
-    enum other {\r
-      value 1;\r
-      description\r
-        "A measure other than those listed below.";\r
-    }\r
-    enum unknown {\r
-      value 2;\r
-      description\r
-        "An unknown measurement or arbitrary, relative numbers";\r
-    }\r
-    enum volts-AC {\r
-      value 3;\r
-      description\r
-        "A measure of electric potential (alternating current).";\r
-    }\r
-    enum volts-DC {\r
-      value 4;\r
-      description\r
-        "A measure of electric potential (direct current).";\r
-    }\r
-    enum amperes {\r
-      value 5;\r
-      description\r
-        "A measure of electric current.";\r
-    }\r
-    enum watts {\r
-      value 6;\r
-      description\r
-        "A measure of power.";\r
-    }\r
-    enum hertz {\r
-      value 7;\r
-      description\r
-        "A measure of frequency.";\r
-    }\r
-    enum celsius {\r
-      value 8;\r
-      description\r
-        "A measure of temperature.";\r
-    }\r
-    enum percent-RH {\r
-      value 9;\r
-      description\r
-        "A measure of percent relative humidity.";\r
-    }\r
-    enum rpm {\r
-      value 10;\r
-      description\r
-        "A measure of shaft revolutions per minute.";\r
-    }\r
-    enum cmm {\r
-      value 11;\r
-      description\r
-        "A measure of cubic meters per minute (airflow).";\r
-    }\r
-    enum truth-value {\r
-      value 12;\r
-      description\r
-        "Value is one of 1 (true) or 2 (false)";\r
-    }\r
-  }\r
-  description\r
-    "A node using this data type represents the sensor measurement\r
-     data type associated with a physical sensor value.  The actual\r
-     data units are determined by examining a node of this type\r
-     together with the associated sensor-value-scale node.\r
-     A node of this type SHOULD be defined together with nodes of\r
-     type sensor-value-scale and type sensor-value-precision.\r
-     These three types are used to identify the semantics of a node\r
-     of type sensor-value.";\r
-  reference\r
-    "RFC 3433: Entity Sensor Management Information Base -\r
-               EntitySensorDataType";\r
-}\r
-\r
-typedef sensor-value-scale {\r
-  type enumeration {\r
-    enum yocto {\r
-      value 1;\r
-      description\r
-        "Data scaling factor of 10^-24.";\r
-    }\r
-    enum zepto {\r
-      value 2;\r
-      description\r
-        "Data scaling factor of 10^-21.";\r
-    }\r
-    enum atto {\r
-      value 3;\r
-      description\r
-        "Data scaling factor of 10^-18.";\r
-    }\r
-    enum femto {\r
-      value 4;\r
-      description\r
-        "Data scaling factor of 10^-15.";\r
-    }\r
-    enum pico {\r
-      value 5;\r
-      description\r
-        "Data scaling factor of 10^-12.";\r
-    }\r
-    enum nano {\r
-      value 6;\r
-      description\r
-        "Data scaling factor of 10^-9.";\r
-    }\r
-    enum micro {\r
-      value 7;\r
-      description\r
-        "Data scaling factor of 10^-6.";\r
-    }\r
-    enum milli {\r
-      value 8;\r
-      description\r
-        "Data scaling factor of 10^-3.";\r
-    }\r
-    enum units {\r
-      value 9;\r
-      description\r
-        "Data scaling factor of 10^0.";\r
-    }\r
-    enum kilo {\r
-      value 10;\r
-      description\r
-        "Data scaling factor of 10^3.";\r
-    }\r
-    enum mega {\r
-      value 11;\r
-      description\r
-        "Data scaling factor of 10^6.";\r
-    }\r
-    enum giga {\r
-      value 12;\r
-      description\r
-        "Data scaling factor of 10^9.";\r
-    }\r
-    enum tera {\r
-      value 13;\r
-      description\r
-        "Data scaling factor of 10^12.";\r
-    }\r
-    enum peta {\r
-      value 14;\r
-      description\r
-        "Data scaling factor of 10^15.";\r
-    }\r
-    enum exa {\r
-      value 15;\r
-      description\r
-        "Data scaling factor of 10^18.";\r
-    }\r
-    enum zetta {\r
-      value 16;\r
-      description\r
-        "Data scaling factor of 10^21.";\r
-    }\r
-    enum yotta {\r
-      value 17;\r
-      description\r
-        "Data scaling factor of 10^24.";\r
-    }\r
-  }\r
-  description\r
-    "A node using this data type represents a data scaling factor,\r
-     represented with an International System of Units (SI) prefix.\r
-     The actual data units are determined by examining a node of\r
-     this type together with the associated sensor-value-type.\r
-     A node of this type SHOULD be defined together with nodes of\r
-     type sensor-value-type and type sensor-value-precision.\r
-     Together, associated nodes of these three types are used to\r
-     identify the semantics of a node of type sensor-value.";\r
-  reference\r
-    "RFC 3433: Entity Sensor Management Information Base -\r
-               EntitySensorDataScale";\r
-}\r
-\r
-typedef sensor-value-precision {\r
-  type int8 {\r
-    range "-8 .. 9";\r
-  }\r
-  description\r
-    "A node using this data type represents a sensor value\r
-     precision range.\r
-     A node of this type SHOULD be defined together with nodes of\r
-     type sensor-value-type and type sensor-value-scale.  Together,\r
-     associated nodes of these three types are used to identify the\r
-     semantics of a node of type sensor-value.\r
-     If a node of this type contains a value in the range 1 to 9,\r
-     it represents the number of decimal places in the fractional\r
-     part of an associated sensor-value fixed-point number.\r
-     If a node of this type contains a value in the range -8 to -1,\r
-     it represents the number of accurate digits in the associated\r
-     sensor-value fixed-point number.\r
-     The value zero indicates the associated sensor-value node is\r
-     not a fixed-point number.\r
-     Server implementers must choose a value for the associated\r
-     sensor-value-precision node so that the precision and accuracy\r
-     of the associated sensor-value node is correctly indicated.\r
-     For example, a component representing a temperature sensor\r
-     that can measure 0 to 100 degrees C in 0.1 degree\r
-     increments, +/- 0.05 degrees, would have a\r
-     sensor-value-precision value of '1', a sensor-value-scale\r
-     value of 'units', and a sensor-value ranging from '0' to\r
-     '1000'.  The sensor-value would be interpreted as\r
-     'degrees C * 10'.";\r
-  reference\r
-    "RFC 3433: Entity Sensor Management Information Base -\r
-               EntitySensorPrecision";\r
-}\r
-\r
-typedef sensor-value {\r
-  type int32 {\r
-    range "-1000000000 .. 1000000000";\r
-  }\r
-  description\r
-   "A node using this data type represents a sensor value.\r
-    A node of this type SHOULD be defined together with nodes of\r
-    type sensor-value-type, type sensor-value-scale, and\r
-    type sensor-value-precision.  Together, associated nodes of\r
-    those three types are used to identify the semantics of a node\r
-    of this data type.\r
-    The semantics of a node using this data type are determined by\r
-    the value of the associated sensor-value-type node.\r
-    If the associated sensor-value-type node is equal to 'voltsAC',\r
-    'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',\r
-    then a node of this type MUST contain a fixed-point number\r
-    ranging from -999,999,999 to +999,999,999.  The value\r
-    -1000000000 indicates an underflow error.  The value\r
-    +1000000000 indicates an overflow error.  The\r
-    sensor-value-precision indicates how many fractional digits\r
-    are represented in the associated sensor-value node.\r
-    If the associated sensor-value-type node is equal to\r
-    'percentRH', then a node of this type MUST contain a number\r
-    ranging from 0 to 100.\r
-    If the associated sensor-value-type node is equal to 'rpm',\r
-    then a node of this type MUST contain a number ranging from\r
-    -999,999,999 to +999,999,999.\r
-    If the associated sensor-value-type node is equal to\r
-    'truth-value', then a node of this type MUST contain either the\r
-    value 1 (true) or the value 2 (false).\r
-    If the associated sensor-value-type node is equal to 'other' or\r
-    'unknown', then a node of this type MUST contain a number\r
-    ranging from -1000000000 to 1000000000.";\r
-  reference\r
-    "RFC 3433: Entity Sensor Management Information Base -\r
-               EntitySensorValue";\r
-}\r
-\r
-typedef sensor-status {\r
-  type enumeration {\r
-    enum ok {\r
-      value 1;\r
-      description\r
-        "Indicates that the server can obtain the sensor value.";\r
-    }\r
-    enum unavailable {\r
-      value 2;\r
-      description\r
-        "Indicates that the server presently cannot obtain the\r
-         sensor value.";\r
-    }\r
-    enum nonoperational {\r
-      value 3;\r
-      description\r
-        "Indicates that the server believes the sensor is broken.\r
-         The sensor could have a hard failure (disconnected wire)\r
-         or a soft failure such as out-of-range, jittery, or wildly\r
-         fluctuating readings.";\r
-    }\r
-  }\r
-  description\r
-    "A node using this data type represents the operational status\r
-     of a physical sensor.";\r
-  reference\r
-    "RFC 3433: Entity Sensor Management Information Base -\r
-               EntitySensorStatus";\r
-}\r
-\r
-/*\r
- * Data nodes\r
- */\r
-\r
-container hardware {\r
-  description\r
-    "Data nodes representing components.\r
-     If the server supports configuration of hardware components,\r
-     then this data model is instantiated in the configuration\r
-     datastores supported by the server.  The leaf-list 'datastore'\r
-     for the module 'ietf-hardware' in the YANG library provides\r
-     this information.";\r
-\r
-  leaf last-change {\r
-    type yang:date-and-time;\r
-    config false;\r
-    description\r
-      "The time the '/hardware/component' list changed in the\r
-       operational state.";\r
-  }\r
-\r
-  list component {\r
-    key name;\r
-    description\r
-      "List of components.\r
-       When the server detects a new hardware component, it\r
-       initializes a list entry in the operational state.\r
-       If the server does not support configuration of hardware\r
-       components, list entries in the operational state are\r
-       initialized with values for all nodes as detected by the\r
-       implementation.\r
-       Otherwise, this procedure is followed:\r
-         1. If there is an entry in the '/hardware/component' list\r
-            in the intended configuration with values for the nodes\r
-            'class', 'parent', and 'parent-rel-pos' that are equal\r
-            to the detected values, then the list entry in the\r
-            operational state is initialized with the configured\r
-            values, including the 'name'.\r
-         2. Otherwise (i.e., there is no matching configuration\r
-            entry), the list entry in the operational state is\r
-            initialized with values for all nodes as detected by\r
-            the implementation.\r
-       If the '/hardware/component' list in the intended\r
-       configuration is modified, then the system MUST behave as if\r
-       it re-initializes itself and follow the procedure in (1).";\r
-    reference\r
-      "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";\r
-\r
-    leaf name {\r
-      type string;\r
-      description\r
-        "The name assigned to this component.\r
-         This name is not required to be the same as\r
-         entPhysicalName.";\r
-    }\r
-\r
-    leaf class {\r
-      type identityref {\r
-        base ianahw:hardware-class;\r
-      }\r
-      mandatory true;\r
-      description\r
-        "An indication of the general hardware type of the\r
-         component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";\r
-    }\r
-\r
-    leaf physical-index {\r
-      if-feature entity-mib;\r
-      type int32 {\r
-        range "1..2147483647";\r
-      }\r
-      config false;\r
-      description\r
-        "The entPhysicalIndex for the entPhysicalEntry represented\r
-         by this list entry.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";\r
-    }\r
-\r
-    leaf description {\r
-      type string;\r
-      config false;\r
-      description\r
-        "A textual description of the component.  This node should\r
-         contain a string that identifies the manufacturer's name\r
-         for the component and should be set to a distinct value\r
-         for each version or model of the component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";\r
-    }\r
-\r
-    leaf parent {\r
-      type leafref {\r
-        path "../../component/name";\r
-        require-instance false;\r
-      }\r
-      description\r
-        "The name of the component that physically contains this\r
-         component.\r
-         If this leaf is not instantiated, it indicates that this\r
-         component is not contained in any other component.\r
-         In the event that a physical component is contained by\r
-         more than one physical component (e.g., double-wide\r
-         modules), this node contains the name of one of these\r
-         components.  An implementation MUST use the same name\r
-         every time this node is instantiated.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";\r
-    }\r
-\r
-    leaf parent-rel-pos {\r
-      type int32 {\r
-        range "0 .. 2147483647";\r
-      }\r
-      description\r
-        "An indication of the relative position of this child\r
-         component among all its sibling components.  Sibling\r
-         components are defined as components that:\r
-           o share the same value of the 'parent' node and\r
-           o share a common base identity for the 'class' node.\r
-         Note that the last rule gives implementations flexibility\r
-         in how components are numbered.  For example, some\r
-         implementations might have a single number series for all\r
-         components derived from 'ianahw:port', while some others\r
-         might have different number series for different\r
-         components with identities derived from 'ianahw:port' (for\r
-         example, one for registered jack 45 (RJ45) and one for\r
-         small form-factor pluggable (SFP)).";\r
-\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) -\r
-                   entPhysicalParentRelPos";\r
-    }\r
-\r
-    leaf-list contains-child {\r
-      type leafref {\r
-        path "../../component/name";\r
-      }\r
-      config false;\r
-      description\r
-        "The name of the contained component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";\r
-    }\r
-\r
-    leaf hardware-rev {\r
-      type string;\r
-      config false;\r
-      description\r
-        "The vendor-specific hardware revision string for the\r
-         component.  The preferred value is the hardware revision\r
-         identifier actually printed on the component itself (if\r
-         present).";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) -\r
-                   entPhysicalHardwareRev";\r
-    }\r
-\r
-    leaf firmware-rev {\r
-      type string;\r
-      config false;\r
-      description\r
-        "The vendor-specific firmware revision string for the\r
-         component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) -\r
-                   entPhysicalFirmwareRev";\r
-    }\r
-\r
-    leaf software-rev {\r
-      type string;\r
-      config false;\r
-\r
-      description\r
-        "The vendor-specific software revision string for the\r
-         component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) -\r
-                   entPhysicalSoftwareRev";\r
-    }\r
-\r
-    leaf serial-num {\r
-      type string;\r
-      config false;\r
-      description\r
-        "The vendor-specific serial number string for the\r
-         component.  The preferred value is the serial number\r
-         string actually printed on the component itself (if\r
-         present).";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";\r
-    }\r
-\r
-    leaf mfg-name {\r
-      type string;\r
-      config false;\r
-      description\r
-        "The name of the manufacturer of this physical component.\r
-         The preferred value is the manufacturer name string\r
-         actually printed on the component itself (if present).\r
-         Note that comparisons between instances of the\r
-         'model-name', 'firmware-rev', 'software-rev', and\r
-         'serial-num' nodes are only meaningful amongst components\r
-         with the same value of 'mfg-name'.\r
-         If the manufacturer name string associated with the\r
-         physical component is unknown to the server, then this\r
-         node is not instantiated.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";\r
-    }\r
-\r
-    leaf model-name {\r
-      type string;\r
-      config false;\r
-      description\r
-        "The vendor-specific model name identifier string\r
-         associated with this physical component.  The preferred\r
-         value is the customer-visible part number, which may be\r
-         printed on the component itself.\r
-         If the model name string associated with the physical\r
-         component is unknown to the server, then this node is not\r
-         instantiated.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";\r
-    }\r
-\r
-    leaf alias {\r
-      type string;\r
-      description\r
-        "An 'alias' name for the component, as specified by a\r
-         network manager, that provides a non-volatile 'handle' for\r
-         the component.\r
-         If no configured value exists, the server MAY set the\r
-         value of this node to a locally unique value in the\r
-         operational state.\r
-         A server implementation MAY map this leaf to the\r
-         entPhysicalAlias MIB object.  Such an implementation needs\r
-         to use some mechanism to handle the differences in size\r
-         and characters allowed between this leaf and\r
-         entPhysicalAlias.  The definition of such a mechanism is\r
-         outside the scope of this document.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";\r
-    }\r
-\r
-    leaf asset-id {\r
-      type string;\r
-      description\r
-        "This node is a user-assigned asset tracking identifier for\r
-         the component.\r
-         A server implementation MAY map this leaf to the\r
-         entPhysicalAssetID MIB object.  Such an implementation\r
-         needs to use some mechanism to handle the differences in\r
-         size and characters allowed between this leaf and\r
-         entPhysicalAssetID.  The definition of such a mechanism is\r
-         outside the scope of this document.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";\r
-    }\r
-\r
-    leaf is-fru {\r
-      type boolean;\r
-      config false;\r
-\r
-      description\r
-        "This node indicates whether or not this component is\r
-         considered a 'field-replaceable unit' by the vendor.  If\r
-         this node contains the value 'true', then this component\r
-         identifies a field-replaceable unit.  For all components\r
-         that are permanently contained within a field-replaceable\r
-         unit, the value 'false' should be returned for this\r
-         node.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";\r
-    }\r
-\r
-    leaf mfg-date {\r
-      type yang:date-and-time;\r
-      config false;\r
-      description\r
-        "The date of manufacturing of the managed component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";\r
-    }\r
-\r
-    leaf-list uri {\r
-      type inet:uri;\r
-      description\r
-        "This node contains identification information about the\r
-         component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";\r
-    }\r
-\r
-    leaf uuid {\r
-      type yang:uuid;\r
-      config false;\r
-      description\r
-        "A Universally Unique Identifier of the component.";\r
-      reference\r
-        "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";\r
-    }\r
-\r
-    container state {\r
-      if-feature hardware-state;\r
-      description\r
-        "State-related nodes";\r
-      reference\r
-        "RFC 4268: Entity State MIB";\r
-\r
-      leaf state-last-changed {\r
-        type yang:date-and-time;\r
-        config false;\r
-        description\r
-          "The date and time when the value of any of the\r
-           admin-state, oper-state, usage-state, alarm-state, or\r
-           standby-state changed for this component.\r
-           If there has been no change since the last\r
-           re-initialization of the local system, this node\r
-           contains the date and time of local system\r
-           initialization.  If there has been no change since the\r
-           component was added to the local system, this node\r
-           contains the date and time of the insertion.";\r
-        reference\r
-          "RFC 4268: Entity State MIB - entStateLastChanged";\r
-      }\r
-\r
-      leaf admin-state {\r
-        type admin-state;\r
-        description\r
-          "The administrative state for this component.\r
-           This node refers to a component's administrative\r
-           permission to service both other components within its\r
-           containment hierarchy as well other users of its\r
-           services defined by means outside the scope of this\r
-           module.\r
-           Some components exhibit only a subset of the remaining\r
-           administrative state values.  Some components cannot be\r
-           locked; hence, this node exhibits only the 'unlocked'\r
-           state.  Other components cannot be shut down gracefully;\r
-           hence, this node does not exhibit the 'shutting-down'\r
-           state.";\r
-        reference\r
-          "RFC 4268: Entity State MIB - entStateAdmin";\r
-      }\r
-\r
-      leaf oper-state {\r
-        type oper-state;\r
-        config false;\r
-        description\r
-          "The operational state for this component.\r
-           Note that this node does not follow the administrative\r
-           state.  An administrative state of 'down' does not\r
-           predict an operational state of 'disabled'.\r
-           Note that some implementations may not be able to\r
-           accurately report oper-state while the admin-state node\r
-           has a value other than 'unlocked'.  In these cases, this\r
-           node MUST have a value of 'unknown'.";\r
-        reference\r
-          "RFC 4268: Entity State MIB - entStateOper";\r
-      }\r
-\r
-      leaf usage-state {\r
-        type usage-state;\r
-        config false;\r
-        description\r
-          "The usage state for this component.\r
-           This node refers to a component's ability to service\r
-           more components in a containment hierarchy.\r
-           Some components will exhibit only a subset of the usage\r
-           state values.  Components that are unable to ever\r
-           service any components within a containment hierarchy\r
-           will always have a usage state of 'busy'.  In some\r
-           cases, a component will be able to support only one\r
-           other component within its containment hierarchy and\r
-           will therefore only exhibit values of 'idle' and\r
-           'busy'.";\r
-        reference\r
-          "RFC 4268: Entity State MIB - entStateUsage";\r
-      }\r
-\r
-      leaf alarm-state {\r
-        type alarm-state;\r
-        config false;\r
-        description\r
-          "The alarm state for this component.  It does not\r
-           include the alarms raised on child components within its\r
-           containment hierarchy.";\r
-        reference\r
-          "RFC 4268: Entity State MIB - entStateAlarm";\r
-      }\r
-\r
-      leaf standby-state {\r
-        type standby-state;\r
-        config false;\r
-        description\r
-          "The standby state for this component.\r
-           Some components will exhibit only a subset of the\r
-           remaining standby state values.  If this component\r
-           cannot operate in a standby role, the value of this node\r
-           will always be 'providing-service'.";\r
-        reference\r
-          "RFC 4268: Entity State MIB - entStateStandby";\r
-      }\r
-    }\r
-\r
-    container sensor-data {\r
-      when 'derived-from-or-self(../class,\r
-                                 "ianahw:sensor")' {\r
-        description\r
-          "Sensor data nodes present for any component of type\r
-           'sensor'";\r
-      }\r
-      if-feature hardware-sensor;\r
-      config false;\r
-\r
-      description\r
-        "Sensor-related nodes.";\r
-      reference\r
-        "RFC 3433: Entity Sensor Management Information Base";\r
-\r
-      leaf value {\r
-        type sensor-value;\r
-        description\r
-          "The most recent measurement obtained by the server\r
-           for this sensor.\r
-           A client that periodically fetches this node should also\r
-           fetch the nodes 'value-type', 'value-scale', and\r
-           'value-precision', since they may change when the value\r
-           is changed.";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorValue";\r
-      }\r
-\r
-      leaf value-type {\r
-        type sensor-value-type;\r
-        description\r
-          "The type of data units associated with the\r
-           sensor value";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorType";\r
-      }\r
-      leaf value-scale {\r
-        type sensor-value-scale;\r
-        description\r
-          "The (power of 10) scaling factor associated\r
-           with the sensor value";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorScale";\r
-      }\r
-\r
-      leaf value-precision {\r
-        type sensor-value-precision;\r
-        description\r
-          "The number of decimal places of precision\r
-           associated with the sensor value";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorPrecision";\r
-      }\r
-\r
-      leaf oper-status {\r
-        type sensor-status;\r
-        description\r
-          "The operational status of the sensor.";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorOperStatus";\r
-      }\r
-\r
-      leaf units-display {\r
-        type string;\r
-        description\r
-          "A textual description of the data units that should be\r
-           used in the display of the sensor value.";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorUnitsDisplay";\r
-      }\r
-\r
-      leaf value-timestamp {\r
-        type yang:date-and-time;\r
-        description\r
-          "The time the status and/or value of this sensor was last\r
-           obtained by the server.";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorValueTimeStamp";\r
-      }\r
-      leaf value-update-rate {\r
-        type uint32;\r
-        units "milliseconds";\r
-        description\r
-          "An indication of the frequency that the server updates\r
-           the associated 'value' node, represented in\r
-           milliseconds.  The value zero indicates:\r
-            - the sensor value is updated on demand (e.g.,\r
-              when polled by the server for a get-request),\r
-            - the sensor value is updated when the sensor\r
-              value changes (event-driven), or\r
-            - the server does not know the update rate.";\r
-        reference\r
-          "RFC 3433: Entity Sensor Management Information Base -\r
-                     entPhySensorValueUpdateRate";\r
-      }\r
-    }\r
-  }\r
-}\r
-\r
-/*\r
- * Notifications\r
- */\r
-\r
-notification hardware-state-change {\r
-  description\r
-    "A hardware-state-change notification is generated when the\r
-     value of /hardware/last-change changes in the operational\r
-     state.";\r
-  reference\r
-    "RFC 6933: Entity MIB (Version 4) - entConfigChange";\r
-}\r
-\r
-notification hardware-state-oper-enabled {\r
-  if-feature hardware-state;\r
-  description\r
-    "A hardware-state-oper-enabled notification signifies that a\r
-     component has transitioned into the 'enabled' state.";\r
-\r
-  leaf name {\r
-    type leafref {\r
-      path "/hardware/component/name";\r
-    }\r
-\r
-    description\r
-      "The name of the component that has transitioned into the\r
-       'enabled' state.";\r
-  }\r
-  leaf admin-state {\r
-    type leafref {\r
-      path "/hardware/component/state/admin-state";\r
-    }\r
-    description\r
-      "The administrative state for the component.";\r
-  }\r
-  leaf alarm-state {\r
-    type leafref {\r
-      path "/hardware/component/state/alarm-state";\r
-    }\r
-    description\r
-      "The alarm state for the component.";\r
-  }\r
-  reference\r
-    "RFC 4268: Entity State MIB - entStateOperEnabled";\r
-}\r
-\r
-notification hardware-state-oper-disabled {\r
-  if-feature hardware-state;\r
-  description\r
-    "A hardware-state-oper-disabled notification signifies that a\r
-     component has transitioned into the 'disabled' state.";\r
-\r
-  leaf name {\r
-    type leafref {\r
-      path "/hardware/component/name";\r
-    }\r
-    description\r
-      "The name of the component that has transitioned into the\r
-       'disabled' state.";\r
-  }\r
-  leaf admin-state {\r
-    type leafref {\r
-      path "/hardware/component/state/admin-state";\r
-    }\r
-    description\r
-      "The administrative state for the component.";\r
-  }\r
-  leaf alarm-state {\r
-    type leafref {\r
-      path "/hardware/component/state/alarm-state";\r
-    }\r
-\r
-    description\r
-      "The alarm state for the component.";\r
-  }\r
-  reference\r
-    "RFC 4268: Entity State MIB - entStateOperDisabled";\r
-}\r
-\r
-}\r