blob: bdec31eb3c0fc011e4316b620f86a4dfd883bbe9 [file] [log] [blame]
Thomas Vachuska6655bee2017-08-24 16:12:59 -07001module openconfig-catalog-types {
2
3 yang-version "1";
4
5 // namespace
6 namespace "http://openconfig.net/yang/catalog-types";
7
8 prefix "oc-cat-types";
9
10 import openconfig-extensions { prefix oc-ext; }
11
12
13 // meta
14 organization "OpenConfig working group";
15
16 contact
17 "OpenConfig working group
18 www.openconfig.net";
19
20 description
21 "This module defines types and identities used by the OpenConfig
22 YANG module catalog model.";
23
24 oc-ext:openconfig-version "0.2.1";
25
26 revision "2017-05-01" {
27 description
28 "Fix to module dependency list";
29 reference "0.2.1";
30 }
31
32 revision "2017-03-08" {
33 description
34 "OpenConfig public release";
35 reference "0.2.0";
36 }
37
38 revision "2016-02-15" {
39 description
40 "Initial OpenConfig public release";
41 reference "0.1.0";
42 }
43
44
45 // extension statements
46
47 // feature statements
48
49 // identity statements
50
51 identity CATALOG_MEMBER_TYPE {
52 description
53 "Base identity for elements in the catalog";
54 }
55
56 identity MODULE {
57 base CATALOG_MEMBER_TYPE;
58 description
59 "Module elements in the catalog";
60 }
61
62 identity RELEASE_BUNDLE {
63 base CATALOG_MEMBER_TYPE;
64 description
65 "Release bundle elements in the catalog";
66 }
67
68 identity FEATURE_BUNDLE {
69 base CATALOG_MEMBER_TYPE;
70 description
71 "Feature bundle elements in the catalog";
72 }
73
74
75 identity IMPLEMENTATION_STATUS_TYPE {
76 description
77 "Indications of the status of a module's implementation on a
78 device or server";
79 }
80
81 identity IN_PROGRESS {
82 base IMPLEMENTATION_STATUS_TYPE;
83 description
84 "Implementation is in progress";
85 }
86
87 identity PLANNED {
88 base IMPLEMENTATION_STATUS_TYPE;
89 description
90 "Implementation is planned";
91 }
92
93 identity COMPLETE {
94 base IMPLEMENTATION_STATUS_TYPE;
95 description
96 "Implementation is complete and fully supports the model";
97 }
98
99 identity PARTIAL {
100 base IMPLEMENTATION_STATUS_TYPE;
101 description
102 "Implementation is complete, but only supports the model
103 partially";
104 }
105
106 identity MODULE_STATUS_TYPE {
107 description
108 "Indicates the deployment status of the module";
109 }
110
111 identity EXPERIMENTAL {
112 base MODULE_STATUS_TYPE;
113 description
114 "Module should be considered experimental, not deployed in
115 production settings";
116 }
117
118 identity PRODUCTION {
119 base MODULE_STATUS_TYPE;
120 description
121 "Module is suitable for use in production, or has been
122 deployed in production";
123 }
124
125 identity MODULE_CATEGORY_BASE {
126 description
127 "Base identity for the module category. It is expected that
128 publishing organizations will define additional derived
129 identities to describe their categorization scheme.";
130 }
131
132 identity MODULE_SUBCATEGORY_BASE {
133 description
134 "Base identity for the module subcategory. It is expected that
135 publishing organizations will define additional derived
136 identities to describe their categorization scheme.";
137 }
138
139 identity ORGANIZATION_TYPE {
140 description
141 "Publishing organization type for the set of modules";
142 }
143
144 identity STANDARDS {
145 base ORGANIZATION_TYPE;
146 description
147 "Standards development organization (SDO) publisher type";
148 }
149
150 identity INDUSTRY {
151 base ORGANIZATION_TYPE;
152 description
153 "Industry forum or other industry group";
154 }
155
156 identity COMMERCIAL {
157 base ORGANIZATION_TYPE;
158 description
159 "Commercial entity, company, etc.";
160 }
161
162 identity INDIVIDUAL {
163 base ORGANIZATION_TYPE;
164 description
165 "For modules published by an individual";
166 }
167
168 identity IETF_MODEL_LAYER {
169 base MODULE_CATEGORY_BASE;
170 description
171 "Describes layering of models based on their abstraction
172 level as defined by IETF model classification proposals";
173 reference
174 "IETF draft-ietf-netmod-yang-model-classification";
175 }
176
177 identity IETF_MODEL_TYPE {
178 base MODULE_SUBCATEGORY_BASE;
179 description
180 "IETF proposed classification dimension of YANG model types as
181 standard YANG models, vendor-specific, or user-specific YANG
182 models and extensions";
183 reference
184 "IETF draft-ietf-netmod-yang-model-classification";
185 }
186
187 identity IETF_NETWORK_SERVICE {
188 base IETF_MODEL_LAYER;
189 description
190 "Service-layer model as defined by IETF classification
191 proposal";
192 }
193
194 identity IETF_NETWORK_ELEMENT {
195 base IETF_MODEL_LAYER;
196 description
197 "Network element-layer model as defined by IETF classification
198 proposal";
199 }
200
201 identity IETF_TYPE_STANDARD {
202 base IETF_MODEL_TYPE;
203 description
204 "Models published by standards-defining organizations (SDOs)";
205 }
206
207 identity IETF_TYPE_VENDOR {
208 base IETF_MODEL_TYPE;
209 description
210 "Developed by organizations (e.g., vendors) with the intent
211 to support a specific set of implementations under control of
212 that organization";
213 }
214
215 identity IETF_TYPE_USER {
216 base IETF_MODEL_TYPE;
217 description
218 "Developed by organizations that operate YANG-based
219 infrastructure including devices and orchestrators.
220 The intent of these models is to express the specific needs
221 for a certain implementation, above and beyond what is provided
222 by vendors";
223 }
224
225 typedef module-version-type {
226 type string;
227 description
228 "This type defines acceptable formats for the version of a
229 module. The version may be a semantic version, or a YANG
230 revision statement date, and may include wildcards when
231 included in a bundle compatibility list, e.g.:
232
233 semver format: <major>.<minor>.<patch>
234 examples: 0.1.0, 2.1.0, 1.1.*, 2.*.*
235
236 revision format: YYYY-MM-DD
237 example: 2016-11-31";
238 }
239
240
241
242}