blob: c09e3724fc8895a59c525b4ba720cf3a778750f0 [file] [log] [blame]
module typedef {
yang-version "1";
namespace "http://rob.sh/yang/test/list";
prefix "foo";
import remote { prefix defn; }
organization "BugReports Inc";
contact "A bug reporter";
description
"A test module";
revision 2014-01-01 {
description "april-fools";
reference "fooled-you";
}
typedef derived-string-type {
type string;
}
typedef restricted-integer-type {
type uint16 {
range 0..64;
}
}
typedef bgp-session-direction {
type enumeration {
enum INBOUND;
enum OUTBOUND;
}
}
typedef new-string-type {
type string;
default "defaultValue";
}
typedef restricted-inherit {
type string {
pattern "^a.*";
}
}
typedef restricted-int-inherit {
type int8 {
range 0..100;
}
}
typedef parent-union {
type union {
type string {
pattern "a.*";
}
type string {
pattern "b.*";
}
}
}
typedef child-union {
type union {
type parent-union;
type string {
pattern "z.*";
}
}
}
typedef union-included {
type union {
type string {
pattern "a.*";
}
type string {
pattern "b.*";
}
}
}
identity identity_base;
identity IDONE {
base "identity_base";
}
identity IDTWO {
base "identity_base";
}
typedef identity_one {
type identityref {
base identity_base;
}
}
typedef referenced-leaf {
type leafref {
path "/container/target";
require-instance false;
}
}
grouping scoped-typedef {
typedef scoped-type {
type string {
pattern "a.*";
}
}
leaf scoped-leaf {
type scoped-type;
}
}
container container {
description
"A container";
leaf-list target {
type string;
description
"A target leaf for leafref checks";
}
leaf string {
type derived-string-type;
}
leaf integer {
type restricted-integer-type;
}
leaf stringdefault {
type derived-string-type;
default "aDefaultValue";
}
leaf integerdefault {
type restricted-integer-type;
default 10;
}
leaf new-string {
type new-string-type;
}
leaf remote-new-type {
type defn:remote-definition;
}
leaf session-dir {
type bgp-session-direction;
}
leaf remote-local-type {
type defn:remote-local-definition;
}
leaf inheritance {
type restricted-inherit {
pattern ".*k";
}
}
leaf int-inheritance {
type restricted-int-inherit {
range 2..5;
}
}
leaf-list stacked-union {
type child-union;
}
leaf include-of-include-definition {
type defn:hybrid-definition;
}
leaf identity-one-typedef {
type identity_one;
}
leaf union-with-union {
type union {
type union-included;
type string {
pattern "q.*";
}
}
}
leaf reference {
type referenced-leaf;
}
uses scoped-typedef;
}
}