github.com/openconfig/goyang@v1.4.5/pkg/yang/testdata/deviate.yang (about) 1 module deviate { 2 prefix "d"; 3 namespace "urn:d"; 4 5 typedef derived-string { 6 type string; 7 default "barnacles"; 8 } 9 10 grouping substmts { 11 leaf config { type string; } 12 leaf default { type string; } 13 leaf default-typedef { type derived-string; } 14 leaf-list default-list { type string; default "foo"; default "bar"; } 15 leaf-list default-list-typedef-default { type derived-string; } 16 leaf mandatory { type string; } 17 leaf-list max-elements { type string; } 18 leaf-list min-elements { type string; } 19 leaf-list max-and-min-elements { type string; } 20 leaf type { type string; } 21 // TODO(robjs): unique requires a list target 22 leaf units { type uint16; } 23 } 24 25 container target { 26 container add { 27 uses substmts; 28 } 29 } 30 31 deviation /target/add/config { 32 deviate add { 33 config false; 34 } 35 } 36 37 deviation /target/add/default { 38 deviate add { 39 default "a default value"; 40 } 41 } 42 43 deviation /target/add/default-list { 44 deviate add { 45 default "foo"; 46 // TODO(wenovus): support multiple default statements for deviate. 47 //default "baz"; 48 } 49 } 50 51 deviation /target/add/mandatory { 52 deviate add { 53 mandatory true; 54 } 55 } 56 57 deviation /target/add/min-elements { 58 deviate add { 59 min-elements 42; 60 } 61 } 62 63 deviation /target/add/max-elements { 64 deviate add { 65 max-elements 42; 66 } 67 } 68 69 deviation /target/add/max-and-min-elements { 70 deviate add { 71 max-elements 42; 72 min-elements 42; 73 } 74 } 75 76 deviation /target/add/units { 77 deviate add { 78 units "fish per second"; 79 } 80 } 81 }