netconfcentral logo

openconfig-catalog-types@2017-03-08



  module openconfig-catalog-types {

    yang-version 1;

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

    prefix oc-cat-types;

    import openconfig-extensions {
      prefix oc-ext;
    }

    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.";

    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";

    }

    revision "2015-10-18" {
      description "Initial revision";
      reference
        "TBD";

    }

    oc-ext:openconfig-version "0.2.0";

    identity CATALOG_MEMBER_TYPE {
      base 
      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 {
      base 
      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 {
      base 
      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 {
      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 {
      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 {
      base 
      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";
    }
  }  // module openconfig-catalog-types