Merge "Moving protobuff files to sal-clustering-commons"
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / yang / distributed-datastore-provider.yang
1 // vi: set smarttab et sw=4 tabstop=4:
2 module distributed-datastore-provider {
3
4     yang-version 1;
5     namespace "urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider";
6     prefix "distributed-datastore-provider";
7
8     import config { prefix config; revision-date 2013-04-05; }
9     import rpc-context { prefix rpcx; revision-date 2013-06-17; }
10     import opendaylight-config-dom-datastore {prefix config-dom-store-spi;}
11     import opendaylight-operational-dom-datastore {prefix operational-dom-store-spi;}
12     import opendaylight-md-sal-dom {prefix sal;}
13
14     description
15         "This module contains the base YANG definitions for
16         the distributed datastore provider implementation";
17
18     revision "2014-06-12" {
19         description
20             "Initial revision.";
21     }
22
23     // This is the definition of the service implementation as a module identity.
24     identity distributed-config-datastore-provider {
25             base config:module-type;
26             config:provided-service config-dom-store-spi:config-dom-datastore;
27             // Specifies the prefix for generated java classes.
28             config:java-name-prefix DistributedConfigDataStoreProvider;
29     }
30
31      // This is the definition of the service implementation as a module identity.
32      identity distributed-operational-datastore-provider {
33                 base config:module-type;
34                 config:provided-service operational-dom-store-spi:operational-dom-datastore;
35                 // Specifies the prefix for generated java classes.
36                 config:java-name-prefix DistributedOperationalDataStoreProvider;
37      }
38
39     grouping data-store-properties {
40         leaf max-shard-data-change-executor-queue-size {
41             default 1000;
42             type uint16;
43             description "The maximum queue size for each shard's data store data change notification executor.";
44          }
45
46          leaf max-shard-data-change-executor-pool-size {
47             default 20;
48             type uint16;
49             description "The maximum thread pool size for each shard's data store data change notification executor.";
50          }
51
52          leaf max-shard-data-change-listener-queue-size {
53             default 1000;
54             type uint16;
55             description "The maximum queue size for each shard's data store data change listeners.";
56          }
57          
58          leaf shard-transaction-idle-timeout-in-minutes {
59             default 10;
60             type uint16;
61             description "The maximum amount of time a shard transaction can be idle without receiving any messages before it self-destructs.";
62          }
63     }
64     
65     // Augments the 'configuration' choice node under modules/module.
66     augment "/config:modules/config:module/config:configuration" {
67         case distributed-config-datastore-provider {
68             when "/config:modules/config:module/config:type = 'distributed-config-datastore-provider'";
69                 container config-schema-service {
70                     uses config:service-ref {
71                         refine type {
72                             mandatory false;
73                             config:required-identity sal:schema-service;
74                         }
75                     }
76                 }
77
78                 container config-properties {
79                     uses data-store-properties;
80                 }
81         }
82     }
83
84     // Augments the 'configuration' choice node under modules/module.
85     augment "/config:modules/config:module/config:configuration" {
86         case distributed-operational-datastore-provider {
87             when "/config:modules/config:module/config:type = 'distributed-operational-datastore-provider'";
88                 container operational-schema-service {
89                     uses config:service-ref {
90                         refine type {
91                             mandatory false;
92                             config:required-identity sal:schema-service;
93                         }
94                     }
95                 }
96
97                 container operational-properties {
98                     uses data-store-properties;
99                 }
100         }
101     }
102 }