diff --git a/models/tapi/src/main/yang/tapi-path-computation@2018-02-16.yang b/models/tapi/src/main/yang/tapi-path-computation@2018-02-16.yang
new file mode 100644
index 0000000..9db5ab3
--- /dev/null
+++ b/models/tapi/src/main/yang/tapi-path-computation@2018-02-16.yang
@@ -0,0 +1,285 @@
+module tapi-path-computation {
+    namespace "urn:onf:otcc:yang:tapi-path-computation";
+    prefix tapi-path-computation;
+    import tapi-topology {
+        prefix tapi-topology;
+    }
+    import tapi-common {
+        prefix tapi-common;
+    }
+    organization "ONF OTCC (Open Transport Configuration & Control) Project";
+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
+                <mailto:karthik.sethuraman@necam.com>";
+    description "
+        This module contains TAPI Path Computation Model definitions.
+        Source: TapiPathComputation.uml
+        Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
+        License: This module is distributed under the Apache License 2.0";
+    revision 2018-02-16 {
+        description "ONF Transport API version 2.0.1
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
+    }
+    augment "/tapi-common:context" {
+        uses path-computation-context;
+        description "Augments the base TAPI Context with PathComputationService information";
+    }
+    /***********************
+    * package object-classes
+    **********************/ 
+        grouping path {
+            leaf-list link {
+                type leafref {
+                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
+                }
+                config false;
+                min-elements 1;
+                description "none";
+            }
+            container routing-constraint {
+                config false;
+                uses routing-constraint;
+                description "none";
+            }
+            uses tapi-common:resource-spec;
+            description "Path is described by an ordered list of TE Links. A TE Link is defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by concatenating link resources (associated with a Link) and the lower-level connections (cross-connections) in the different nodes";
+        }
+        grouping path-service-end-point {
+            leaf service-interface-point {
+                type leafref {
+                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
+                }
+                config false;
+                description "none";
+            }
+            leaf role {
+                type tapi-common:port-role;
+                config false;
+                description "Each EP of the FC has a role (e.g., working, protection, protected, symmetric, hub, spoke, leaf, root)  in the context of the FC with respect to the FC function. ";
+            }
+            leaf direction {
+                type tapi-common:port-direction;
+                config false;
+                description "The orientation of defined flow at the EndPoint.";
+            }
+            leaf service-layer {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "The association of the FC to LTPs is made via EndPoints.
+                The EndPoint (EP) object class models the access to the FC function. 
+                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.  
+                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC. 
+                It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
+                The EP replaces the Protection Unit of a traditional protection model. 
+                The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
+        }
+        grouping path-computation-service {
+            leaf-list path {
+                type leafref {
+                    path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
+                }
+                config false;
+                min-elements 1;
+                description "none";
+            }
+            list end-point {
+                key 'local-id';
+                min-elements 2;
+                max-elements 2;
+                uses path-service-end-point;
+                description "none";
+            }
+            container routing-constraint {
+                uses routing-constraint;
+                description "none";
+            }
+            container objective-function {
+                uses path-objective-function;
+                description "none";
+            }
+            container optimization-constraint {
+                uses path-optimization-constraint;
+                description "none";
+            }
+            uses tapi-common:service-spec;
+            description "none";
+        }
+        grouping path-objective-function {
+            leaf bandwidth-optimization {
+                type tapi-common:directive-value;
+                config false;
+                description "none";
+            }
+            leaf concurrent-paths {
+                type tapi-common:directive-value;
+                config false;
+                description "none";
+            }
+            leaf cost-optimization {
+                type tapi-common:directive-value;
+                config false;
+                description "none";
+            }
+            leaf link-utilization {
+                type tapi-common:directive-value;
+                config false;
+                description "none";
+            }
+            leaf resource-sharing {
+                type tapi-common:directive-value;
+                config false;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping path-optimization-constraint {
+            leaf traffic-interruption {
+                type tapi-common:directive-value;
+                config false;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping routing-constraint {
+            container requested-capacity {
+                config false;
+                uses tapi-common:capacity;
+                description "none";
+            }
+            leaf service-level {
+                type string;
+                config false;
+                description "An abstract value the meaning of which is mutually agreed – typically represents metrics such as - Class of service, priority, resiliency, availability";
+            }
+            leaf-list path-layer {
+                type tapi-common:layer-protocol-name;
+                config false;
+                description "none";
+            }
+            list cost-characteristic {
+                key 'cost-name';
+                config false;
+                uses tapi-topology:cost-characteristic;
+                description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
+            }
+            list latency-characteristic {
+                key 'traffic-property-name';
+                config false;
+                uses tapi-topology:latency-characteristic;
+                description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
+            }
+            leaf-list include-topology {
+                type leafref {
+                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
+                }
+                config false;
+                description "none";
+            }
+            leaf-list avoid-topology {
+                type leafref {
+                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
+                }
+                config false;
+                description "none";
+            }
+            uses tapi-common:local-class;
+            description "none";
+        }
+        grouping path-computation-context {
+            list path-comp-service {
+                key 'uuid';
+                uses path-computation-service;
+                description "none";
+            }
+            list path {
+                key 'uuid';
+                config false;
+                uses path;
+                description "none";
+            }
+            description "none";
+        }
+
+    /***********************
+    * package interfaces
+    **********************/ 
+        rpc compute-p-2-p-path {
+            description "none";
+            input {
+                list sep {
+                    min-elements 2;
+                    max-elements 2;
+                    uses path-service-end-point;
+                    description "none";
+                }
+                container routing-constraint {
+                    uses routing-constraint;
+                    description "none";
+                }
+                container objective-function {
+                    uses path-objective-function;
+                    description "none";
+                }
+            }
+            output {
+                container service {
+                    uses path-computation-service;
+                    description "none";
+                }
+            }
+        }
+        rpc optimize-p-2-p-path {
+            description "none";
+            input {
+                leaf path-id-or-name {
+                    type string;
+                    description "none";
+                }
+                container routing-constraint {
+                    uses routing-constraint;
+                    description "none";
+                }
+                container optimization-constraint {
+                    uses path-optimization-constraint;
+                    description "none";
+                }
+                container objective-function {
+                    uses path-objective-function;
+                    description "none";
+                }
+            }
+            output {
+                container service {
+                    uses path-computation-service;
+                    description "none";
+                }
+            }
+        }
+        rpc delete-p-2-p-path {
+            description "none";
+            input {
+                leaf path-id-or-name {
+                    type string;
+                    description "none";
+                }
+            }
+            output {
+                container service {
+                    uses path-computation-service;
+                    description "none";
+                }
+            }
+        }
+
+}
