module yuma-mysession {

  namespace "http://netconfcentral.org/ns/yuma-mysession";

  prefix "myses";

  import yuma-app-common { prefix appcmn; }
  import ietf-netconf-with-defaults { prefix wd; }

  organization  "Netconf Central";

  contact
    "Andy Bierman <andy@netconfcentral.org>";

  description
    "This module contains RPC methods for
     customizing the default session settings
     for the current session.

     Copyright (c) 2009 - 2013 Andy Bierman and the persons
     identified as authors of the code.  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 2013-10-05 {
    description
       "Added message-indent parameter.";
  }

  revision 2010-05-10 {
    description
       "Added default to line-size parameter.";
  }

  revision 2009-08-11 {
    description
       "Initial published version";
  }

  grouping session-params {
    uses appcmn:IndentParm;

    leaf linesize {
      description
        "The desired maximum number of characters printed
         per line.  The server may exceed this number.
         It is only a suggestion, not a hard limit.";
      type uint32 { range "40 .. 1024"; }
      default 72;
    }
    leaf with-defaults {
      description
        "The desired maximum number of characters printed
         per line.  The server may exceed this number.
         It is only a suggestion, not a hard limit.";
      type wd:with-defaults-mode;
    }
    leaf message-indent {
      type int8 {
        range "-1 .. 9";
      }
      default -1;
      description
        "The number of spaces to indent for each level of
         output in a protocol message, e.g. NETCONF request.
         The value zero means no indent, just line feeds.
         The value -1 means no indent and no line feeds either.";
    }
  }

  rpc get-my-session {
    description
      "Get the customization settings for this session";
    output {
      uses session-params;
    }
  }

  rpc set-my-session {
    description
      "Set the customization settings for this session.
       This is like a merge operation.  Only the values that
       are present will be used to overwrite the existing
       settings.";
    input {
      uses session-params;
    }
  }

}
