module decimal64 {

    yang-version 1;

    namespace "ydt.decimal64";

    prefix "decimal64";

    organization "ON-LAB";

    description "This module defines for decimal64 classifier.";

    revision "2016-05-24" {
        description "Initial revision.";
    }
    leaf negInt {
          type decimal64 {
                fraction-digits 2;
          }
    }

    leaf negIntWithMaxFraction {
          type decimal64 {
                fraction-digits 18;
          }
    }

    leaf negIntWithMinFraction {
          type decimal64 {
                fraction-digits 1;
          }
    }

    leaf posInt {
          type decimal64 {
                fraction-digits 2;
          }
    }

    leaf posIntWithMaxFraction {
          type decimal64 {
                fraction-digits 18;
          }

    }

    leaf posIntWithMinFraction {
          type decimal64 {
                fraction-digits 1;
          }

    }

    leaf minIntWithRange {
          type decimal64 {
                fraction-digits 2;
                range "10 .. 100";
          }
    }

    leaf midIntWithRange {
          type decimal64 {
             fraction-digits 2;
             range "10 .. 100";
         }
    }

    leaf maxIntWithRange {
          type decimal64 {
             fraction-digits 2;
             range "10 .. 100";
         }
    }

    list multiRangeValidation {
        config false;
        leaf decimal {
              type decimal64 {
                 fraction-digits 2;
                 range "10..40 | 50..100";
              }
        }
        leaf revDecimal {
              type decimal64 {
                 fraction-digits 2;
                 range "min .. 3.14 | 10 | 20..max";
              }
        }
    }
}