module plugin {
    yang-version 1.1;
    namespace s;
    prefix s;

    container simple-cont {

        container simple-cont1 {
            presence "This is an example of a presence container.";
        }

        container simple-cont2 {
            container ac1 {
                list acl1 {
                    key acs1;
                    leaf acs1 {
                        type string;
                    }
                    leaf acs2 {
                        type string;
                    }
                    leaf acs3 {
                        type string;
                    }
                    container inner {
                        leaf inner-leaf {
                            type string;
                        }
                    }
                    anydata data;
                }

                list acl2 {
                    key acs1;
                    ordered-by user;
                    leaf acs1 {
                        type string;
                    }
                }

                list acl3 {
                    key "acs1 acs2 acs3";
                    ordered-by user;
                    leaf acs1 {
                        type string;
                    }
                    leaf acs2 {
                        type string;
                    }
                    leaf acs3 {
                        type string;
                    }
                    container inner {
                        leaf inner-leaf {
                            type string;
                        }
                    }
                }

                list acl4 {
                    config false;
                    leaf acs1 {
                        type string;
                    }
                    leaf acs2 {
                        type string;
                    }
                    description
                        "Keyless list.";
                }

                list acl5 {
                    key "acs1 acs2 acs3";
                    leaf acs1 {
                        type string;
                    }
                    leaf acs2 {
                        type string;
                    }
                    leaf acs3 {
                        type string;
                    }
                }

                leaf-list dup-keys {
                    config false;
                    type string;
                    description
                        "Leaf-list with duplicate keys.";
                }
            }
        }

        container simple-cont3 {
            leaf-list user-list {
                type string;
                ordered-by user;
                description
                    "User ordered list.";
            }
            anyxml data;
        }

        container simple-cont4 {
            presence "Do not include empty containers from this container by default.";

            leaf leaf-prefix {
                description "Deletion of this leaf should not impact leaf-prefix2.";
                type string;
            }

            leaf leaf-prefix2 {
                description "I should not be impacted by leaf-prefix.";
                type string;
            }

            container prefix {
                presence "Do not include empty containers from this container by default.";
                description "Deletion of this container should not impact prefix2.";
                leaf l {
                    type string;
                }
            }

            container prefix2 {
                presence "Do not include empty containers from this container by default.";
                description "I should not be impacted by prefix.";
                leaf l {
                    type string;
                }
            }

            container state-prefix {
                presence "Do not include empty containers from this container by default.";
                description "Deletion of this container should not impact state-prefix2.";
                config false;
                leaf l {
                    type string;
                }
            }

            container state-prefix2 {
                presence "Do not include empty containers from this container by default.";
                description "I should not be impacted by state-prefix.";
                config false;
                leaf l {
                    type string;
                }
            }
        }

        container simple-cont5 {
            leaf-list user-list {
                type string;
                ordered-by user;
                description
                    "User ordered list 2.";
            }
            leaf-list system-list {
                type string;
                description
                    "System ordered list.";
            }
        }
    }
}
