Blob Blame History Raw
module mod12 {
    prefix abc;
    namespace "urn:cesnet:mod12";

    grouping ssh {
        container ssh {
            config false;
            leaf key { type string; }
            leaf user {
                type string {
                    pattern '[a-z0-9]+';
                }
            }
            leaf is_valid {
                type boolean;
                default "false";
                when "../abc";
            }

            container abc;

            leaf-list test {
                type string;
            }
        }

        choice ch1 {
            case ca {
                leaf ca {
                    type int32;
                    default -100;
                }

                container presence {
                    presence "enable";
                }
            }

            leaf str { type string; }
        }

        choice ch2 {
            case ca {
                container presence2 {
                    presence "enable";
                }
            }

            leaf str2 {
                type string;
                default string42;
            }
        }

        anyxml any;
    }

    container server {
        uses ssh {
            refine ch1 {
                description "test";
                default ca;
            }

            refine ch2 {
                reference "test";
                default str3;
            }

            refine ssh/abc {
                presence "enable";
            }

            refine "ssh/is_valid" {
                default true;
            }

            refine ssh/user {
                reference "test";
                config true;
            }

            refine ssh {
                config "true";
            }

            refine any {
                mandatory true;
                reference "reference test";
                description "test description";
            }

            refine ssh/test {
                min-elements 3;
                max-elements 5;
                reference "list reference";
                must "/top = 42";
                must "../user = 'admin'";
            }

            augment ch2 {
                leaf str3 {
                    type uint8;
                }
            }
        }
    }

    leaf top {
        type int32;
        default 42;
    }
}