module yumaworks-attrs {

  namespace "http://yumaworks.com/ns/yumaworks-attrs";

  prefix "ya";

  import ietf-yang-types { prefix yang; }
  import ietf-yang-metadata { prefix md; }
  import yuma-ncx { prefix ncx; }
  import yuma-types { prefix yt; }

  organization "YumaWorks, Inc.";

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

  description
    "This module contains abstract object definitions for
     the last-modified and etag XML attributes.

     Copyright (c) 2013 - 2024 YumaWorks, Inc. All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the BSD 3-Clause License
     http://opensource.org/licenses/BSD-3-Clause";

  revision 2024-07-29 {
    description
       "Add annotations for all attributes.";
  }

  revision 2015-05-25 {
    description
       "Add fixed-value attribute leaf.";
  }

  revision 2014-10-16 {
    description
       "Add owner attribute leaf.";
  }

  revision 2014-05-04 {
    description
       "Add datapath and btype leafs";
  }

  revision 2013-02-28 {
    description
       "Initial version";
  }

  md:annotation last-modified {
    type yang:date-and-time;
    description
      "Indicates the last-modified timestamp for the node containing
       this attribute.";
  }

  leaf last-modified {
    ncx:abstract;
    ncx:hidden;
    type yang:date-and-time;
    description
      "Indicates the last-modified timestamp for the node containing
       this attribute.";
  }

  md:annotation etag {
    type string;
    description
      "Contains the Entity Tag for the node containing this attribute.";
  }

  leaf etag {
    ncx:abstract;
    ncx:hidden;
    type string;
    description
      "Contains the Entity Tag for the node containing this attribute.";
  }

  md:annotation datapath {
    type string;
    description
      "Contains the object path expression for the data node object.";
  }

  leaf datapath {
    ncx:abstract;
    ncx:hidden;
    type string;
    description
      "Contains the object path expression for the data node object.";
  }

  md:annotation btype {
    type uint8;
    description
      "Contains the basetype enumeration code for an object.
       Used in SIL-SA <key> nodes to allow proper conversion.";
  }

  leaf btype {
    ncx:abstract;
    ncx:hidden;
    type uint8;
    description
      "Contains the basetype enumeration code for an object.
       Used in SIL-SA <key> nodes to allow proper conversion.";
  }

  md:annotation owner {
    type yt:NcxName;
    description
      "Contains the owner name for a data node.";
  }

  leaf owner {
    ncx:abstract;
    ncx:hidden;
    type yt:NcxName;
    description
      "Contains the owner name for a data node.";
  }

  md:annotation fixed-value {
    type boolean;
    description
      "Indicates if a key value node in a get2 request is a
       fixed value for getnext purposes.  In this mode, some keys
       are provided as content-match nodes, but not all.
       The getnext walk applies to the fixed-value=false nodes.
       The caller must not increment a key value for a getnext
       callback if fixed-value=true.";
  }

  leaf fixed-value {
    ncx:abstract;
    ncx:hidden;
    type boolean;
    description
      "Indicates if a key value node in a get2 request is a
       fixed value for getnext purposes.  In this mode, some keys
       are provided as content-match nodes, but not all.
       The getnext walk applies to the fixed-value=false nodes.
       The caller must not increment a key value for a getnext
       callback if fixed-value=true.";
  }

}
