aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-catalog-types.yang
blob: bdec31eb3c0fc011e4316b620f86a4dfd883bbe9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
module openconfig-catalog-types {

  yang-version "1";

  // namespace
  namespace "http://openconfig.net/yang/catalog-types";

  prefix "oc-cat-types";

  import openconfig-extensions { prefix oc-ext; }


  // meta
  organization "OpenConfig working group";

  contact
    "OpenConfig working group
    www.openconfig.net";

  description
    "This module defines types and identities used by the OpenConfig
    YANG module catalog model.";

  oc-ext:openconfig-version "0.2.1";

  revision "2017-05-01" {
    description
      "Fix to module dependency list";
    reference "0.2.1";
  }

  revision "2017-03-08" {
    description
      "OpenConfig public release";
    reference "0.2.0";
  }

  revision "2016-02-15" {
    description
      "Initial OpenConfig public release";
    reference "0.1.0";
  }


  // extension statements

  // feature statements

  // identity statements

  identity CATALOG_MEMBER_TYPE {
    description
      "Base identity for elements in the catalog";
  }

  identity MODULE {
    base CATALOG_MEMBER_TYPE;
    description
      "Module elements in the catalog";
  }

  identity RELEASE_BUNDLE {
    base CATALOG_MEMBER_TYPE;
    description
      "Release bundle elements in the catalog";
  }

  identity FEATURE_BUNDLE {
    base CATALOG_MEMBER_TYPE;
    description
      "Feature bundle elements in the catalog";
  }


  identity IMPLEMENTATION_STATUS_TYPE {
    description
      "Indications of the status of a module's implementation on a
      device or server";
  }

  identity IN_PROGRESS {
    base IMPLEMENTATION_STATUS_TYPE;
    description
      "Implementation is in progress";
  }

  identity PLANNED {
    base IMPLEMENTATION_STATUS_TYPE;
    description
      "Implementation is planned";
  }

  identity COMPLETE {
    base IMPLEMENTATION_STATUS_TYPE;
    description
      "Implementation is complete and fully supports the model";
  }

  identity PARTIAL {
    base IMPLEMENTATION_STATUS_TYPE;
    description
      "Implementation is complete, but only supports the model
      partially";
  }

  identity MODULE_STATUS_TYPE {
    description
      "Indicates the deployment status of the module";
  }

  identity EXPERIMENTAL {
    base MODULE_STATUS_TYPE;
    description
      "Module should be considered experimental, not deployed in
      production settings";
  }

  identity PRODUCTION {
    base MODULE_STATUS_TYPE;
    description
      "Module is suitable for use in production, or has been
      deployed in production";
  }

  identity MODULE_CATEGORY_BASE {
    description
      "Base identity for the module category.  It is expected that
      publishing organizations will define additional derived
      identities to describe their categorization scheme.";
  }

  identity MODULE_SUBCATEGORY_BASE {
    description
      "Base identity for the module subcategory.  It is expected that
      publishing organizations will define additional derived
      identities to describe their categorization scheme.";
  }

  identity ORGANIZATION_TYPE {
    description
      "Publishing organization type for the set of modules";
  }

  identity STANDARDS {
    base ORGANIZATION_TYPE;
    description
      "Standards development organization (SDO) publisher type";
  }

  identity INDUSTRY {
    base ORGANIZATION_TYPE;
    description
      "Industry forum or other industry group";
  }

  identity COMMERCIAL {
    base ORGANIZATION_TYPE;
    description
      "Commercial entity, company, etc.";
  }

  identity INDIVIDUAL {
    base ORGANIZATION_TYPE;
    description
      "For modules published by an individual";
  }

  identity IETF_MODEL_LAYER {
    base MODULE_CATEGORY_BASE;
    description
      "Describes layering of models based on their abstraction
      level as defined by IETF model classification proposals";
    reference
      "IETF draft-ietf-netmod-yang-model-classification";
  }

  identity IETF_MODEL_TYPE {
    base MODULE_SUBCATEGORY_BASE;
    description
      "IETF proposed classification dimension of YANG model types as
     standard YANG models, vendor-specific, or user-specific YANG
     models and extensions";
    reference
      "IETF draft-ietf-netmod-yang-model-classification";
  }

  identity IETF_NETWORK_SERVICE {
    base IETF_MODEL_LAYER;
    description
      "Service-layer model as defined by IETF classification
      proposal";
  }

  identity IETF_NETWORK_ELEMENT {
    base IETF_MODEL_LAYER;
    description
      "Network element-layer model as defined by IETF classification
      proposal";
  }

  identity IETF_TYPE_STANDARD {
    base IETF_MODEL_TYPE;
    description
      "Models published by standards-defining organizations (SDOs)";
  }

  identity IETF_TYPE_VENDOR {
    base IETF_MODEL_TYPE;
    description
      "Developed by organizations (e.g., vendors) with the intent
      to support a specific set of implementations under control of
      that organization";
  }

  identity IETF_TYPE_USER {
    base IETF_MODEL_TYPE;
    description
      "Developed by organizations that operate YANG-based
      infrastructure including devices and orchestrators.
      The intent of these models is to express the specific needs
      for a certain implementation, above and beyond what is provided
      by vendors";
  }

  typedef module-version-type {
    type string;
    description
      "This type defines acceptable formats for the version of a
      module.  The version may be a semantic version, or a YANG
      revision statement date, and may include wildcards when
      included in a bundle compatibility list, e.g.:

      semver format: <major>.<minor>.<patch>
      examples: 0.1.0, 2.1.0, 1.1.*, 2.*.*

      revision format:  YYYY-MM-DD
      example:  2016-11-31";
  }



}