Migrate to odlparent 2.0.0
[alto.git] / alto-core / standard-service-models / model-networkmap / src / main / yang / alto-model-networkmap.yang
1 module alto-model-networkmap {
2
3     yang-version 1;
4
5     namespace "urn:opendaylight:alto:service:model:networkmap";
6
7     prefix "alto-model-networkmap";
8
9     import "alto-basic-types" {
10         prefix "alto-types";
11     }
12
13     import "alto-resourcepool" {
14         prefix "alto-resourcpool";
15     }
16
17     import "alto-model-base" {
18         prefix "base";
19     }
20
21     organization "Yale University";
22
23     contact "alto-dev@lists.opendaylight.org";
24
25     revision "2015-10-21" {
26         description "Initial revision of alto networkmap";
27     }
28
29     identity "resource-type-networkmap" {
30         base "alto-resourcepool:resource-type";
31         description
32             "The resource type for network map";
33     }
34
35     identity "resource-type-filtered-networkmap" {
36         base "alto-resourcepool:resource-type";
37         description
38             "The resource type for filtered network map";
39     }
40
41     identity "property-type-base" {
42         description
43             "Base type for PID properties";
44     }
45
46     identity "address-type-base" {
47         base "property-type-base";
48         description
49             "Base type for address type";
50     }
51
52     grouping "networkmap-request-data" {
53         container "networkmap-filter" {
54             leaf-list "pid" {
55                 type "alto-types:pid-name";
56             }
57
58             leaf-list "address-type" {
59                 type identityref {
60                     base "address-type-base";
61                 }
62             }
63         }
64     }
65
66     grouping "networkmap-response-data" {
67         container "network-map" {
68             list "partition" {
69                 key "pid";
70
71                 leaf "pid" {
72                     type "alto-types:pid-name";
73                 }
74             }
75         }
76     }
77
78     grouping "alto-request-networkmap" {
79         uses "base:alto-request-base" {
80             augment "request" {
81                 case "networkmap-request" {
82                     uses "networkmap-request-data";
83                 }
84             }
85         }
86     }
87
88     grouping "alto-response-networkmap" {
89         uses "base:alto-response-error" {
90             augment "response" {
91                 case "networkmap-response" {
92                     uses "networkmap-response-data";
93                 }
94             }
95         }
96     }
97
98     rpc query {
99         input {
100             uses "alto-request-networkmap";
101         }
102
103         output {
104             uses "alto-response-networkmap";
105         }
106     }
107
108     identity "address-type-ipv4" {
109         base "address-type-base";
110         description
111             "Address type for IPv4";
112     }
113
114     identity "address-type-ipv6" {
115         base "address-type-base";
116         description
117             "Address type for IPv6";
118     }
119
120 }