netconfcentral logo

yumaworks-restconf@2017-07-03



  module yumaworks-restconf {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:yumaworks-restconf";

    prefix yrc;

    import ietf-yang-types {
      prefix yang;
    }
    import ietf-restconf {
      prefix rc;
    }
    import yang-data-ext {
      prefix yd;
    }

    organization "YumaWorks, Inc.";

    contact
      "Support <support@yumaworks.com>";

    description
      "This module contains abstract object definitions for
     the RESTCONF protocol.";

    revision "2017-07-03" {
      description
        "Convert plain augment to augment-yang-data";
    }

    revision "2017-03-29" {
      description
        "Update text to use restconf by reference.";
    }

    revision "2015-12-03" {
      description
        "Move restconf grouping back to ietf-restconf and
        augment it with 2 leafs.";
    }

    revision "2015-07-29" {
      description "Initial version";
    }

    yd:augment-yang-data "/rc:restconf";

    augment /rc:restconf {
      leaf stream {
        type empty;
        description
          "Used for the event-streams";
      }

      leaf yang {
        type empty;
        description
          "Used for the schema retriaval";
      }
    }

    grouping content-parameter {
      leaf content {
        type enumeration {
          enum "config" {
            value 0;
            description
              "Return only configuration descendant data nodes";
          }
          enum "nonconfig" {
            value 1;
            description
              "Return only non-configuration descendant data nodes";
          }
          enum "all" {
            value 2;
            description
              "Return all descendant data nodes";
          }
        }
        description
          "The content parameter from RESTCONF.";
        reference
          "RFC 8040";

      }
    }  // grouping content-parameter

    grouping depth-parameter {
      description
        "IETF RESTCONF depth parameter";
      leaf depth {
        type union {
          type enumeration {
            enum "unbounded" {
              value 0;
              description
                "All sub-resources will be returned.";
            }
          }
          type uint32 {
            range "1..max";
          }
        }
        default 'unbounded';
        description
          "The 'depth' parameter from RESTCONF";
        reference
          "RFC 8040.";

      }
    }  // grouping depth-parameter

    grouping query-parameters {
      description
        "Contains conceptual definitions for the query string
        parameters used in the RESTCONF protocol.";
      uses content-parameter;

      uses depth-parameter;

      leaf filter {
        type yang:xpath1.0;
        description
          "The 'filter' parameter from RESTCONF.";
        reference
          "RFC 8040.";

      }

      leaf insert {
        type enumeration {
          enum "first" {
            value 0;
            description
              "Insert the new data as the new first entry.";
          }
          enum "last" {
            value 1;
            description
              "Insert the new data as the new last entry.";
          }
          enum "before" {
            value 2;
            description
              "Insert the new data before the insertion point,
             specified by the value of the 'point' parameter.";
          }
          enum "after" {
            value 3;
            description
              "Insert the new data after the insertion point,
             specified by the value of the 'point' parameter.";
          }
        }
        default 'last';
        description
          "The 'insert' parameter from RESTCONF";
        reference
          "RFC 8040";

      }

      leaf point {
        type string;
        description
          "The 'point' parameter from RESTCONF.";
        reference
          "RFC 8040";

      }

      leaf start-time {
        type yang:date-and-time;
        description
          "The 'start-time' parameter from RESTCONF";
        reference
          "RFC 8040";

      }

      leaf stop-time {
        type yang:date-and-time;
        description
          "The 'stop-time' parameter from RESTCONF";
        reference
          "RFC 8040";

      }
    }  // grouping query-parameters
  }  // module yumaworks-restconf