--- /dev/null
+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;
+ }
+}