bulk transaction and co-relation support
[controller.git] / opendaylight / md-sal / model / model-flow-service / src / main / yang / meter-service.yang
index f9cbd640e0bbae98ce2336d9d117043c16dfa18a..ecdef41951aa63482b11c122c51f08d602cb8f26 100644 (file)
@@ -2,25 +2,25 @@ module sal-meter {
     namespace "urn:opendaylight:meter:service";
     prefix meter;
 
-    import yang-ext {prefix ext;}
-    import opendaylight-inventory {prefix inv;}
-    import ietf-inet-types {prefix inet;}
-    import opendaylight-meter-types {prefix meter-type;}
+    import yang-ext {prefix ext; revision-date "2013-07-09";}
+    import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
+    import opendaylight-meter-types {prefix meter-type;revision-date "2013-09-18";}
+    import flow-capable-transaction {prefix tr;}
 
     revision "2013-09-18" {
         description "Initial revision of meter service";
     }        
     
-    metering node-meter {
-        leaf node {
-            type inv:node-ref;
-        }
+    grouping node-meter {
+        uses "inv:node-context-ref";
         
         uses meter-type:meter;
     }
 
     /** Base configuration structure **/
-    metering meter-update {
+    grouping meter-update {
+        uses "inv:node-context-ref";
+
         container original-meter {
             uses meter-type:meter;
         }
@@ -31,19 +31,69 @@ module sal-meter {
 
     rpc add-meter {
         input {
-            uses node-meter;
+            uses tr:transaction-metadata;            
+            leaf meter-ref {
+                type meter-type:meter-ref;
+            }
+            uses node-meter;            
+        }
+        output {
+            uses tr:transaction-aware;
         }
     }
 
     rpc remove-meter {
         input {
-            uses node-meter;
+            uses tr:transaction-metadata;            
+            leaf meter-ref {
+                type meter-type:meter-ref;
+            }
+            
+            uses node-meter;                       
+        }
+        output {
+            uses tr:transaction-aware;
         }
     }
 
     rpc update-meter {
         input {
-            uses node-meter;
+            uses tr:transaction-metadata;            
+            leaf meter-ref {
+                type meter-type:meter-ref;
+            }
+            
+            uses meter-update;                       
+        }
+        output {
+            uses tr:transaction-aware;
+        }
+    }
+        
+    notification meter-added {
+        uses tr:transaction-metadata;
+        leaf meter-ref {
+            type meter-type:meter-ref;
         }
-    }     
+        uses node-meter;
+        uses tr:transaction-aware;
+    }
+
+    notification meter-updated {
+        uses tr:transaction-metadata;
+        leaf meter-ref {
+            type meter-type:meter-ref;
+        }
+        uses node-meter;
+        uses tr:transaction-aware;
+    }
+
+    notification meter-removed {
+        uses tr:transaction-metadata;
+        leaf meter-ref {
+            type meter-type:meter-ref;
+        }
+        uses node-meter;
+        uses tr:transaction-aware;
+    }
 }
\ No newline at end of file