-module types2 {\r
- yang-version 1;\r
- namespace "urn:simple.types.data.demo";\r
- prefix "t2";\r
- \r
- import types1 {\r
- prefix "if";\r
- revision-date 2013-02-27;\r
- }\r
-\r
- organization "Cisco";\r
- contact "WILL-BE-DEFINED-LATER";\r
- description "This is types-data test description";\r
-\r
- revision "2013-02-27" {\r
- reference " WILL BE DEFINED LATER";\r
- }\r
- \r
- typedef ranges1 {\r
- type int32 {\r
- range "10..20";\r
- }\r
- }\r
- \r
- typedef ranges2 {\r
- type ranges1 {\r
- range "12..max";\r
- }\r
- }\r
- \r
- typedef my-base-int32-type {\r
- type int32 {\r
- range "2..20";\r
- }\r
- }\r
-\r
- typedef my-type1 {\r
- type my-base-int32-type {\r
- range "11..max";\r
- }\r
- }\r
- \r
- typedef my-string-type {\r
- type my-custom-string {\r
- pattern "[a-k]*";\r
- length "5..10";\r
- }\r
- }\r
- \r
- typedef my-custom-string {\r
- type string {\r
- pattern "[a-k]*";\r
- length "5..11";\r
- }\r
- }\r
- \r
- typedef my-string-type2 {\r
- type my-string-type {\r
- pattern "[b-u]*";\r
- }\r
- }\r
- \r
- typedef my-string-type-ext {\r
- type my-string-type2 {\r
- pattern "[e-z]*";\r
- }\r
- }\r
- \r
- typedef my-int-type {\r
- type int32 {\r
- range "10..20";\r
- }\r
- }\r
- \r
- typedef my-int-type2 {\r
- type my-int-type {\r
- range "12..18";\r
- }\r
- }\r
- \r
- typedef my-int-type-ext {\r
- type my-int-type2 {\r
- range "14..16";\r
- }\r
- }\r
- \r
- typedef my-decimal-type {\r
- type decimal64 {\r
- fraction-digits 6;\r
- }\r
- }\r
- \r
- typedef my-decimal-type-ext {\r
- type decimal64 {\r
- fraction-digits 5;\r
- }\r
- }\r
-\r
- augment "/if:interfaces/if:ifEntry" {\r
- when "if:ifType='ds0'";\r
- leaf ds0ChannelNumber {\r
- type string;\r
- }\r
- }\r
-\r
- leaf if-name {\r
- type leafref {\r
- path "/interface/name";\r
- }\r
- }\r
- \r
- leaf name {\r
- type string;\r
- }\r
- \r
- leaf nested-type-leaf {\r
- type my-type1;\r
- }\r
- \r
- extension c-define {\r
- description\r
- "Takes as argument a name string.\r
- Makes the code generator use the given name in the\r
- #define.";\r
- argument "name" {\r
- yin-element "true";\r
- }\r
- }\r
-\r
-}\r
+module types2 {
+ yang-version 1;
+ namespace "urn:simple.types.data.demo";
+ prefix "t2";
+
+ organization "opendaylight";
+ contact "http://www.opendaylight.org/";
+
+ description "This is types-data test description";
+
+ revision "2013-02-27" {
+ reference " WILL BE DEFINED LATER";
+ }
+
+ typedef my-base-int32-type {
+ type int32 {
+ range "2..20";
+ }
+ }
+
+ typedef my-type1 {
+ type my-base-int32-type {
+ range "3..9|11..max";
+ }
+ units "mile";
+ default "11";
+ }
+
+ typedef my-custom-string {
+ type string {
+ pattern "[a-k]*";
+ length "5..11";
+ }
+ }
+
+ typedef my-string-type {
+ type my-custom-string {
+ length "6..10";
+ }
+ }
+
+ typedef my-string-type2 {
+ type my-string-type {
+ pattern "[b-u]*";
+ }
+ }
+
+ typedef my-string-type-ext {
+ type my-string-type2 {
+ pattern "[e-z]*";
+ }
+ }
+
+ typedef my-int-type {
+ type int32 {
+ range "10..20";
+ }
+ }
+
+ typedef my-int-type2 {
+ type my-int-type {
+ range "12..18";
+ }
+ }
+
+ typedef my-int-type-ext {
+ type my-int-type2 {
+ range "14..16";
+ }
+ }
+
+ typedef my-decimal-type {
+ type decimal64 {
+ fraction-digits 6;
+ }
+ }
+
+ typedef my-decimal-type-ext {
+ type decimal64 {
+ fraction-digits 5;
+ }
+ }
+
+ typedef my-union {
+ type union {
+ type int16 {
+ range "1..100";
+ }
+ type int32;
+ }
+ }
+
+ typedef my-union-ext {
+ type my-union;
+ }
+
+ typedef nested-union1 {
+ type nested-union2;
+ }
+
+ typedef nested-union2 {
+ type union {
+ type my-union-ext;
+ type string;
+ }
+ }
+
+ leaf if-name {
+ type leafref {
+ path "/interface/name";
+ }
+ }
+
+ leaf name {
+ type string;
+ }
+
+ leaf count {
+ type int8 {
+ range "1..10";
+ }
+ }
+
+ leaf nested-type-leaf {
+ type my-type1;
+ }
+
+ extension c-define {
+ description
+ "Takes as argument a name string.
+ Makes the code generator use the given name in the
+ #define.";
+ argument "name" {
+ yin-element "true";
+ }
+ }
+
+ container system {
+ leaf user {
+ type string;
+ }
+ }
+
+ grouping target {
+ anyxml data {
+ config true;
+ description "Copy of the source datastore subset.";
+ mandatory false;
+ must "test-condition-text";
+ reference "test-no-reference";
+ status "obsolete";
+ when "test-when-text";
+ }
+ choice how {
+ description "test choice description";
+ default interval;
+ case interval {
+ leaf interval {
+ type uint16;
+ default 30;
+ units minutes;
+ }
+ }
+ case daily {
+ leaf daily {
+ type empty;
+ }
+ leaf time-of-day {
+ type string;
+ units 24-hour-clock;
+ default 1am;
+ }
+ }
+ }
+ leaf address {
+ type string;
+ description "Target IP address";
+ }
+ container port {
+ description "Target port container";
+ }
+ list addresses {
+ key "id";
+ leaf id {
+ type int8;
+ }
+ }
+ grouping target-inner {
+ description "target-inner default description";
+ leaf inner-grouping-id {
+ type int8;
+ }
+ }
+ typedef group-type {
+ type my-decimal-type;
+ }
+ }
+
+ container peer {
+ container destination {
+ uses target {
+ refine address {
+ default "1.2.3.4";
+ description "description of address defined by refine";
+ reference "address reference added by refine";
+ config false;
+ mandatory true;
+ must "ifType != 'ethernet' or " +
+ "(ifType = 'ethernet' and ifMTU = 1500)" {
+ error-message "An ethernet MTU must be 1500";
+ }
+ }
+ refine port {
+ description "description of port defined by refine";
+ reference "port reference added by refine";
+ config false;
+ presence "presence is required";
+ }
+ refine addresses {
+ description "description of addresses defined by refine";
+ reference "addresses reference added by refine";
+ config false;
+ min-elements 2;
+ max-elements 12;
+ }
+ refine target-inner {
+ description "new target-inner grouping description";
+ }
+ refine group-type {
+ description "new group-type description";
+ reference "new group-type reference";
+ }
+ }
+ }
+ }
+
+ container interfaces {
+ list ifEntry {
+ key "ifIndex";
+
+ leaf ifIndex {
+ type uint32;
+ units minutes;
+ }
+
+ leaf ifMtu {
+ type int32;
+ }
+
+ min-elements 1;
+ max-elements 11;
+ }
+ }
+
+}