blob: bdec31eb3c0fc011e4316b620f86a4dfd883bbe9 [file] [log] [blame]
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";
}
}