module aaa-app-config {
  yang-version 1;
  namespace "urn:opendaylight:aaa:app:config";
  prefix "aaa-app-config";
  organization "OpenDaylight";

  contact "ryandgoulding@gmail.com, m.elserngawy@gmail.com";

  revision "2017-06-19" {
   description "aaa-app-config is used to manipulate aspects of AAA clustered-app-config.";
  }

  grouping string-pair {
    description "Used to store string key/value pairs.";
    leaf pair-key {
      type string;
      description "The key.";
    }
    leaf pair-value {
      type string;
      description "The value.";
    }
  }

  grouping shiro.ini {
    description "Basic structure of generated shiro.ini";

    list main {
      key "pair-key";
      uses string-pair;
      ordered-by user;
      description "The main section of shiro.ini.";
    }

    list urls {
      key "pair-key";
      uses string-pair;
      ordered-by user;
      description "The urls section of shiro.ini.";
    }
  }

  container shiro-configuration {
    description "AAA shiro related configuration.";
    uses shiro.ini;
  }

  container datastore-config {
    leaf store {
      description "Available data store types.";
      type enumeration {
        enum h2-data-store {
          description "H2 DataStore.";
        }
      }
    }
    leaf time-to-live {
      description "Time to live for tokens in second.";
      type uint64;
      default 36000;
    }
    leaf time-to-wait {
      description "Time to wait for tokens in second.";
      type uint64;
      default 3600;
    }
  }
}