Include ieft-hardware

- add ietf specific hardware modelling in a separate
  yang model and augment bases.

IssueID: OAM-301
Change-Id: I410cd95600e6a56188d84c48f020fd6cef0dd91f
Signed-off-by: demx8as6 <martin.skorupski@highstreet-technologies.com>
diff --git a/data-model/yang/working/o-ran-sc/template/yes-o1-notify-pnf-registration-ietf-hardware.yang b/data-model/yang/working/o-ran-sc/template/yes-o1-notify-pnf-registration-ietf-hardware.yang
new file mode 100644
index 0000000..d53ff61
--- /dev/null
+++ b/data-model/yang/working/o-ran-sc/template/yes-o1-notify-pnf-registration-ietf-hardware.yang
@@ -0,0 +1,178 @@
+module yes-o1-notify-pnf-registration-ietf-hardware {
+  yang-version 1.1;
+  namespace "urn:o-ran-sc:params:xml:ns:yang:yes-o1-notify-pnf-registration-ietf-hardware";
+  prefix ypri;
+
+  import ietf-interfaces {
+    prefix "if";
+    reference
+      "RFC: 8343: A YANG Data Model for Interface Management";
+  }
+
+  import o-ran-wg4-features {
+    prefix "o-ran-feat";
+    reference
+      "ORAN-WG4.M.0-v05.00";
+  }
+
+  import o-ran-interfaces {
+    prefix "o-ran-int";
+    reference
+      "ORAN-WG4.M.0-v05.00";
+  }
+
+  import o-ran-hardware {
+    prefix "o-ran-hw";
+    reference
+      "ORAN-WG4.M.0-v05.00";
+  }
+
+  import yang-based-event-stream {
+    prefix yes;
+    reference
+      "wiki.opnfv.org/display/ves/VES+goes+YES";
+  }
+  import yes-o1-notify-pnf-registration {
+    prefix ypr;
+  }
+  import ietf-hardware {
+    prefix hw;
+    reference
+      "RFC 8348: A YANG Data Model for Hardware Management";
+  }
+
+  organization
+    "O-RAN Software Community";
+  contact
+    "www.o-ran-sc.org";
+  description
+    "The module extends yes-o1-notify-pnf-registration with hardware information
+     and parameters according to RFC 8348.
+
+     Copyright 2022 highstreet technologies GmbH and others.
+
+     Licensed under the Apache License, Version 2.0 (the 'License');
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an 'AS IS' BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.";
+
+  revision 2022-09-12 {
+    description
+      "Initial version";
+    reference
+      "O-RAN Operations and Maintenance Interface Specification (O-RAN.WG10.O1-Interface.0-v07.00)
+             section 2.7.2.4 Operations and Notifications
+       RFC 8348: A YANG Data Model for Hardware Management";
+  }
+
+  /*
+   * Groupings
+   */
+  grouping hardware-grp {
+    leaf serial-number {
+      type leafref {
+        path '/hw:hardware/hw:component/hw:serial-num';
+      }
+      // mandatory true;
+      description
+        "The serial number of the network function.";
+    }
+    // macAddress - O /if:interfaces/if:interface/o-ran-int:mac-address
+    leaf mac-address {
+      type leafref {
+        path '/if:interfaces/if:interface/o-ran-int:mac-address';
+      }
+      description
+        "The MAC address of OAM interface of the network function.";
+    }
+    leaf model-number {
+      type leafref {
+        path '/hw:hardware/hw:component/hw:model-name';
+      }
+      description
+        "Version or name of the network function from the vendor.";
+    }
+    leaf software-version {
+      type leafref {
+        path '/hw:hardware/hw:component/hw:software-rev';
+      }
+      description
+        "The active software version running on the network function.";
+    }
+    leaf manufacture-date {
+      type leafref {
+        path '/hw:hardware/hw:component/hw:mfg-date';
+      }
+      description
+        "Manufacture date of the network function.";
+    }
+    leaf last-service-date {
+      if-feature "o-ran-feat:NON-PERSISTENT-MPLANE";
+      type leafref {
+        path '/hw:hardware/hw:component/o-ran-hw:last-service-date';
+      }
+      description
+        "Date when the field operation staff way on-side.";
+    }
+    description
+      "An object class containing o1-notify-pnf-registration specific parameters
+       according to RFC 8348.";
+  }
+
+  /*
+   * Augmentation of o1-notify-pnf-registration
+   */
+
+  // vendorName M /hw:hardware/hw:component/hw:mfg-name
+  augment "/yes:event-history/yes:event/ypr:o1-notify-pnf-registration/ypr:vendor" {
+    case name {
+      leaf vendor-name {
+        type leafref {
+          path '/hw:hardware/hw:component/hw:mfg-name';
+        }
+        description
+          "Network function vendor name according to IANA Private Enterprise Numbers";
+      }
+    }
+    description
+      "Exposing the vendor-name as defined by IETF.";
+  }
+
+  augment "/yes:yang-based-event-stream/yes:event/ypr:o1-notify-pnf-registration/ypr:vendor" {
+    case name {
+      leaf vendor-name {
+        type leafref {
+          path '/hw:hardware/hw:component/hw:mfg-name';
+        }
+        description
+          "Network function vendor name according to IANA Private Enterprise Numbers";
+      }
+    }
+    description
+      "Exposing the vendor-name as defined by ietf:";
+    reference
+      "3GPP TS 28.632 vendorName";
+  }
+
+  augment "/yes:event-history/yes:event/ypr:o1-notify-pnf-registration" {
+    if-feature "yes:event-history";
+    uses hardware-grp;
+    description
+      "Adds to o1-notify-pnf-registration container within the historic data
+       the hardware information and parameters according to ietf.";
+  }
+
+  augment "/yes:yang-based-event-stream/yes:event/ypr:o1-notify-pnf-registration" {
+    uses hardware-grp;
+    description
+      "Adds to o1-notify-pnf-registration container within the notification
+       syntax the hardware information and parameters according to ietf.";
+  }
+}