Initial check-in Open ROADM app v1.2.1 (ONOS-5354).

Change-Id: I077b40c308efe257af0e23f0d87de1215c3789ad
diff --git a/apps/openroadm/yangmodel/src/main/yang/org-openroadm-xponder.yang b/apps/openroadm/yangmodel/src/main/yang/org-openroadm-xponder.yang
new file mode 100644
index 0000000..a786acc
--- /dev/null
+++ b/apps/openroadm/yangmodel/src/main/yang/org-openroadm-xponder.yang
@@ -0,0 +1,221 @@
+module org-openroadm-xponder {
+  namespace "http://org/openroadm/xponder";
+  prefix org-openroadm-xponder;
+
+  import org-openroadm-equipment-states-types {
+    prefix org-openroadm-equipment-states-types;
+  }
+  import org-openroadm-common-types {
+    prefix org-openroadm-common-types;
+  }
+  import ietf-inet-types {
+    prefix inet;
+  }
+
+  organization
+    "OPEN ROADM MSA";
+  contact
+    "OpenROADM.org.";
+  description
+    "YANG definitions for xponder
+     
+     Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016, 
+     AT&T Intellectual Property.  All other rights reserved.
+     
+     Redistribution and use in source and binary forms, with or without modification, 
+     are permitted provided that the following conditions are met:
+     
+     * Redistributions of source code must retain the above copyright notice, this 
+       list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above copyright notice, 
+       this list of conditions and the following disclaimer in the documentation and/or 
+       other materials provided with the distribution.
+     * Neither the Members of the Open ROADM MSA Agreement nor the names of its 
+       contributors may be used to endorse or promote products derived from this software 
+       without specific prior written permission.
+     
+     THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT ''AS IS'' 
+     AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+     WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
+     IN NO EVENT THE MEMBERS OF THE OPEN ROADM MSA  AGREEMENT BE LIABLE FOR ANY DIRECT, 
+     INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
+     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS OF USE, DATA, 
+     OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+     WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
+     ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+     POSSIBILITY OF SUCH DAMAGE.";
+
+  revision 2016-10-14 {
+    description
+      "Version 1.2";
+  }
+
+  grouping xponder {
+    list xponders {
+      key "clli";
+      leaf clli {
+        type string;
+        description
+          "Location CLLI where the Xponder resides";
+      }
+      list ids {
+        key "node-number node-type";
+        leaf node-number {
+          type uint32;
+          description
+            "Number assigned to an Xponder base unit in a given
+             office, i.e., 1, 2..N";
+        }
+        leaf node-type {
+          type org-openroadm-common-types:node-types;
+        }
+        leaf node-id {
+          type string;
+          description
+            "Network-wide unique identifier for an Xponder";
+        }
+        leaf vendor {
+          type string;
+          description
+            "Identifier of the supplier for the xponder";
+        }
+        leaf customer-code {
+          type string;
+          description
+            "Owner of the xponder";
+        }
+        leaf domain-subnetwork {
+          type string;
+          description
+            "Specific Domain-Subnetwork in which the ROADM node resides";
+        }
+        leaf ip {
+          type inet:ip-address;
+          description
+            "IP address assigned to the ROADM node";
+        }
+        leaf relay-rack {
+          type string;
+          description
+            "Frame Identification Code (FIC)";
+        }
+        leaf shelf {
+          type uint32;
+        }
+        container input-connection {
+          leaf accumulated-bitrate {
+            type uint32;
+          }
+          list port {
+            key "port-name";
+            leaf port-name {
+              type string;
+            }
+            leaf customer-code {
+              type string;
+              description
+                "Owner of the input module";
+            }
+            leaf vendor {
+              type string;
+              description
+                "Supplier of the input module";
+            }
+            leaf local-lgx {
+              type string;
+            }
+            leaf bit-rate {
+              type uint32;
+            }
+            leaf signal-format {
+              type string;
+            }
+            leaf reach {
+              type string;
+            }
+            leaf optic {
+              type org-openroadm-common-types:optic-types;
+            }
+            leaf state {
+              type org-openroadm-equipment-states-types:states;
+              description
+                "A xponder can be in one of the following
+                 states";
+            }
+            leaf tail-client-equipment {
+              type string;
+            }
+            leaf tail-client-equipmentId {
+              type string;
+            }
+            leaf tail-clfi {
+              type string;
+            }
+          }
+        }
+        container output-connection {
+          leaf clli {
+            type string;
+          }
+          leaf node-number{
+            type uint32;
+          }
+          leaf node-id {
+            type string;
+            description
+              "ROADM node ID";
+          }
+          leaf accumulated-bitrate {
+            type uint32;
+          }
+          list port {
+            key "port-name";
+            leaf port-name {
+              type string;
+            }
+            leaf vendor {
+              type string;
+              description
+                "Supplier of the output module";
+            }
+            leaf srg-number {
+              type uint16;
+              description
+                "Output module is connected to";
+            }
+            leaf pp-number {
+              type uint16;
+            }
+            leaf wavelength-number{
+              type uint32;
+            }
+            leaf local-lgx {
+              type string;
+            }
+            leaf tail-clfi{
+              type string;
+            }
+            leaf bit-rate {
+              type uint32;
+            }
+            leaf signal-format {
+              type string;
+            }
+            leaf reach {
+              type string;
+            }
+            leaf optic {
+              type org-openroadm-common-types:optic-types;
+            }
+            leaf state {
+              type org-openroadm-equipment-states-types:states;
+              description
+                "A xponder can be in one of the following
+                 states";
+            }
+          }
+        }
+      }
+    }
+  }
+}