pyang fixes for service models
[controller.git] / opendaylight / md-sal / model / model-flow-service / src / main / yang / sal-meter.yang
diff --git a/opendaylight/md-sal/model/model-flow-service/src/main/yang/sal-meter.yang b/opendaylight/md-sal/model/model-flow-service/src/main/yang/sal-meter.yang
new file mode 100644 (file)
index 0000000..50f65df
--- /dev/null
@@ -0,0 +1,98 @@
+module sal-meter {
+    namespace "urn:opendaylight:meter:service";
+    prefix meter;
+
+    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";
+    }        
+    
+    grouping node-meter {
+        uses "inv:node-context-ref";
+        
+        uses meter-type:meter;
+    }
+
+    /** Base configuration structure **/
+    grouping meter-update {
+        uses "inv:node-context-ref";
+
+        container original-meter {
+            uses meter-type:meter;
+        }
+        container updated-meter {
+            uses meter-type:meter;
+        }
+    }
+
+    rpc add-meter {
+        input {
+            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 tr:transaction-metadata;            
+            leaf meter-ref {
+                type meter-type:meter-ref;
+            }
+            
+            uses node-meter;                       
+        }
+        output {
+            uses tr:transaction-aware;
+        }
+    }
+
+    rpc update-meter {
+        input {
+            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;
+    }
+}