Thomas Vachuska | 6655bee | 2017-08-24 16:12:59 -0700 | [diff] [blame] | 1 | module 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 | } |